On Mon, Nov 18, 2013 at 2:55 AM, Hoàng Tuấn Việt <viet...@viettel.com.vn>wrote:
> Hi all, > > > > I use Python telnetlib on Windows 7 32 bit. Here is my code: > > > > 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'*) > > connection.read_until(*'>'*, timeout = TIMEOUT) > > return connection > > > > I can run the program in Eclipse and telnet successfully to a Windows host. > > > > But when I export to .exe file: > > > > 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'*}] > > ) > > > > and run the programe, I encounter this error: > > > > UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0: > ordinal not in range(128) > > > > at line: > > > > connection.write(username + '\r') > > > > I have debugged and searched the Internet hard but found no solution yet. > > > > I think it is because of ‘\r’. > > > > Do you have any idea? > > > > Viet > > -- > https://mail.python.org/mailman/listinfo/python-list > > You should be able to reproduce the same behavior on PyDev if in your run configuration you select the encoding of the console to be ascii (run > run configurations > select run configuration > common > set encoding to us-ascii). My guess is that you have the problem because the username has non-ascii chars -- and you're receiving it as an unicode and not a string... so, you have to do encode it properly to a string before writing to the connection (i.e.: username.encode('utf-8') + '\r' -- although the encoding may have to be a different one and not utf-8). Cheers, Fabio
-- https://mail.python.org/mailman/listinfo/python-list