Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #59964
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!easy.in-chemnitz.de!news2.arglkargh.de!news.n-ix.net!news.bawue.net!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!news.tele.dk!news.tele.dk!small.news.tele.dk!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <vietht2@viettel.com.vn> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.007 |
| X-Spam-Evidence | '*H*': 0.99; '*S*': 0.00; 'subject:not': 0.03; 'else:': 0.03; 'skip:[ 20': 0.04; 'elif': 0.05; "subject:' ": 0.07; 'username,': 0.07; '22,': 0.09; '8bit%:30': 0.09; '8bit%:78': 0.09; 'dst': 0.09; 'host,': 0.09; 'line:': 0.09; 'lines.': 0.09; 'password)': 0.09; 'subject:position': 0.09; 'true)': 0.09; 'python': 0.11; 'def': 0.12; 'windows': 0.15; "'':": 0.16; '-1,': 0.16; '8bit%:32': 0.16; '>to': 0.16; 'codec': 0.16; 'eclipse': 0.16; 'event):': 0.16; 'inputs': 0.16; 'msg):': 0.16; "new',": 0.16; 'ordinal': 0.16; 'skip:[ 40': 0.16; 'src': 0.16; 'stderr': 0.16; 'str)': 0.16; 'str):': 0.16; 'subject: \n ': 0.16; 'tab': 0.16; 'timeout': 0.16; 'timeout)': 0.16; 'app': 0.19; "skip:' 30": 0.19; 'skip:p 40': 0.19; 'input': 0.22; 'select': 0.22; 'import': 0.22; 'python?': 0.22; 'error': 0.23; 'byte': 0.24; 'skip:c 70': 0.24; 'skip:{ 20': 0.24; 'sorry,': 0.24; 'options': 0.25; 'post': 0.26; 'function': 0.29; 'host': 0.29; 'skip:p 30': 0.29; "skip:' 10": 0.31; 'os,': 0.31; "skip:' 40": 0.31; 'username': 0.31; 'file': 0.32; 'class': 0.32; 'skip:c 30': 0.32; 'run': 0.32; 'text': 0.33; 'plain': 0.33; 'skip:t 40': 0.33; 'style': 0.33; 'skip:_ 10': 0.34; "can't": 0.35; 'connection': 0.35; 'skip:s 30': 0.35; 'but': 0.35; 'url:rec-html40': 0.35; 'version': 0.36; 'skip:s 60': 0.36; 'thanks': 0.36; 'url:org': 0.36; 'url:microsoft': 0.37; 'list': 0.37; 'skip:& 10': 0.38; '8bit%:86': 0.38; 'window': 0.38; 'url:office': 0.38; 'skip:[ 10': 0.38; 'to:addr:python-list': 0.38; 'url:schemas': 0.38; 'url:omml': 0.39; 'url:2004': 0.39; 'skip:& 20': 0.39; 'subject:can': 0.39; 'url:12': 0.39; 'to:addr:python.org': 0.39; 'skip:p 20': 0.39; 'skip:u 10': 0.60; '8bit%:47': 0.60; 'blank': 0.60; 'skip:\xc2 10': 0.60; 'skip:t 30': 0.61; 'from:charset:utf-8': 0.61; 'show': 0.63; 'management': 0.65; 'skip:\xe2 10': 0.65; 'bottom': 0.67; 'close': 0.67; '8bit%:31': 0.68; '8bit%:40': 0.68; '8bit%:50': 0.68; '8bit%:74': 0.68; 'panel': 0.68; 'skip:w 40': 0.68; 'skip:w 30': 0.69; '8bit%:96': 0.70; '8bit%:100': 0.72; '8bit%:94': 0.72; '8bit%:27': 0.74; 'export': 0.74; 'received:203': 0.74; '8bit%:46': 0.78; '8bit%:98': 0.78; '8bit%:16': 0.84; '8bit%:49': 0.84; '8bit%:61': 0.84; '8bit%:82': 0.84; 'comment.': 0.84; 'received:220.231': 0.84; '8bit%:33': 0.91; '8bit%:54': 0.91; '8bit%:56': 0.91; '8bit%:58': 0.91; '8bit%:70': 0.91; '8bit%:18': 0.93; '8bit%:55': 0.93; '8bit%:67': 0.93; '8bit%:42': 0.95 |
| Date | Tue, 19 Nov 2013 15:39:56 +0700 |
| From | Hoàng Tuấn Việt <vietht2@viettel.com.vn> |
| Subject | RE: UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128) |
| Sender | vietht2@viettel.com.vn |
| To | python-list@python.org |
| MIME-version | 1.0 |
| X-Mailer | Microsoft Outlook 14.0 |
| Content-Type | multipart/alternative; boundary="Boundary_(ID_oK5MBHtGHXoVbM6v7o3uQQ)" |
| Content-language | en-us |
| Thread-index | Ac7lAras9yK9o7aBTk+5gBbCJg/m7g== |
| X-Mailman-Approved-At | Tue, 19 Nov 2013 09:43:04 +0100 |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.2893.1384850586.18130.python-list@python.org> (permalink) |
| Lines | 2024 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1384850586 news.xs4all.nl 15998 [2001:888:2000:d::a6]:37676 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | csiph.com comp.lang.python:59964 |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
Hi Terry,
Thanks for your comment.
>To better help us help you, what exact version of Python?
I use Python 2.7.5
>Please post plain text without html.
Sorry, I will do it.
>Please post programs single spaced with just occasional blank lines.
File my_program.py
import wx.aui
import paramiko
import telnetlib
from LinuxHostPage import *
from WindowsHostPage import *
from AIXHostPage import *
Publisher = pub.Publisher()
TIMEOUT = 3
class MainWindow(wx.Frame):
def __init__(self, parent, title):
self.os = ''
self.connection = []
wx.Frame.__init__(self, parent, title=title)
self.SetBackgroundColour('LightGray')
# A Statusbar in the bottom of the window
self.CreateStatusBar()
self.SetStatusText("Please input credentials.")
# Publisher
Publisher().subscribe(self.change_statusbar, 'change_statusbar')
# Input box
self.input_panel = wx.Panel(self)
self.host = wx.StaticText(self.input_panel, -1, 'Host')
self.host_entry = wx.TextCtrl(self.input_panel)
self.username = wx.StaticText(self.input_panel, -1, 'Username')
self.username_entry = wx.TextCtrl(self.input_panel)
self.password = wx.StaticText(self.input_panel, -1, 'Password')
self.password_entry = wx.TextCtrl(self.input_panel, style = wx.TE_PASSWORD)
self.connect_btn = wx.Button(self.input_panel, -1, 'Connect')
## List box
self.os_text = wx.StaticText(self.input_panel, -1, 'OS')
self.choice_list = wx.Choice(self.input_panel, choices=['Redhat', 'SuSE', 'Windows', 'Solaris', 'AIX'])
self.choice_list.SetSelection(2)
self.input_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.os_text, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.choice_list, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.host, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.host_entry, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.username, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.username_entry, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.password, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.password_entry, flag = wx.ALIGN_CENTER)
self.input_sizer.Add((7,0))
self.input_sizer.Add(self.connect_btn, flag = wx.ALIGN_CENTER)
self.input_panel.SetSizer(self.input_sizer)
# Function panel
self.notebook = wx.aui.AuiNotebook(self)
# Top Sizer
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add((0,7))
self.sizer.Add(self.input_panel, border = 10)
self.sizer.Add((0,7))
self.sizer.Add(self.notebook, 1, wx.EXPAND)
self.sizer.Add((0,7))
self.SetSizerAndFit(self.sizer)
# Show Frame
self.Show()
# Events
self.connect_btn.Bind(wx.EVT_BUTTON, self.on_connect)
self.Bind(wx.EVT_CLOSE, self.on_close)
def change_statusbar(self, msg):
self.SetStatusText(msg.data)
def ssh(self, host, username, password):
connection = paramiko.SSHClient()
connection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
connection.connect(host, 22, username, password)
stdin, stdout, stderr = connection.exec_command('ls')
stdin.write('expected_input\n')
stdin.flush()
return connection
def telnet(self, host, os, username, password):
connection = telnetlib.Telnet(host)
connection.read_until('login: ')
connection.write(username + '\r')
connection.read_until('assword: ')
connection.write(password + '\r')
if os == 'windows':
connection.read_until('>', timeout = TIMEOUT)
elif os == 'aix':
connection.read_until('#', timeout = TIMEOUT)
return connection
def get_os(self):
os = self.choice_list.GetLabel()
return os.lower()
def on_connect(self, event):
self.os = self.get_os()
self.connect_btn.Disable()
host = self.host_entry.GetValue()
username = self.username_entry.GetValue()
password = self.password_entry.GetValue()
self.SetStatusText('Connecting... Please wait.')
self.connect_btn.Disable()
if self.os == 'redhat' or self.os == 'suse':
self.connection = self.ssh(host, username, password)
page = LinuxHostPage(self, self.connection, self.os, Publisher)
elif self.os == 'windows':
self.connection = self.telnet(host, self.os, username, password)
page = WindowsHostPage(self, self.connection, self.os, Publisher)
elif self.os == 'aix':
self.connection = self.telnet(host, self.os, username, password)
page = AIXHostPage(self, self.connection, self.os, Publisher)
self.SetStatusText('Connected')
self.connect_btn.Enable()
# Connection tab
self.notebook.AddPage(page, host, select = True)
def close_connection(self):
self.connection.close()
# Clean up and close
def on_close(self, event):
self.close_connection
self.Destroy()
def on_gen(self, event):
# Validate inputs
if self.src_input.GetLabel() == '' or self.protocol_input.GetLabel()=='':
# Set status bar
wx.MessageBox('Please input all required fields!', 'Info', wx.OK | wx.ICON_INFORMATION)
return
# Src IP
src_ip = '-s ' + self.src_input.GetLabel()
# Protocol
proto = '-p ' + self.protocol_input.GetLabel().lower()
# Src port
src_port = self.src_port_input.GetLabel().lower().strip()
if src_port == '(optional)' or src_port == '':
src_port = ''
else:
src_port = '--sport ' + src_port
# Dst port
dst_port = self.dst_port_input.GetLabel().lower().strip()
if dst_port != '':
dst_port = '--dport ' + dst_port
# Target
target = self.target_input.GetLabel().strip()
if target == '(optional)' or target == '':
target = '-j ACCEPT'
else:
target = '-j ' + target.upper()
# Rule
if src_port == '':
rule = '{:10s}{:30s}{:10s}{:20s}{:22s}{:20s}'.format('-A INPUT', src_ip, proto, dst_port, '-m state --state NEW', target)
else:
rule = '{:10s}{:30s}{:10s}{:20s}{:20s}{:22s}{:20s}'.format('-A INPUT', src_ip, proto, src_port, dst_port, '-m state --state NEW', target)
self.rule.Clear()
self.rule.WriteText(rule)
self.rule.Enable()
# Set status bar
self.set_status_bar('Generated rule successfully.')
def set_status_bar(self, str):
Publisher().sendMessage(('change_statusbar'), str)
app = wx.App(False)
frame = MainWindow(None, "Firewall Management Tool")
frame.Maximize()
app.MainLoop()
I can run the program in Eclipse and telnet successfully to a Windows host.
But when I export to .exe file by py2exe:
python gen_exe.py py2exe
File gen_exe.py:
from distutils.core import setup
import py2exe
setup(
options = {
"py2exe":{
"packages": ['wx.lib.pubsub'],
"dll_excludes": ["MSVCP90.dll", "HID.DLL", "w9xpopen.exe"],
}
},
console = [{'script': ‘my_program.py'}]
)
When I run my_program.exe, this error is displayed:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
at line:
connection.write(username + '\r')
--
Viet
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
RE: UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128) Hoàng Tuấn Việt <vietht2@viettel.com.vn> - 2013-11-19 15:39 +0700
csiph-web