Unicode error in exefied Python script
Tim Daneliuk
tundra at tundraware.com
Mon Jan 20 03:40:07 EST 2003
Christian Bretterklieber wrote:
> Hi,
>
> I have a problem with a Python script that I want to make executable
> on Win2K (I'm using ActivePython 2.2.1 in case that matters). The
> script does some database stuff. The exefied version (both with py2exe
> and Gordon McMillan's Installer) on a simple statement:
>
> stmt = "UPDATE blah SET val1 = '%s', [...]" % (row[xval1],...)
>
> The error message it throws is "UnicodeError: ASCII decoding error:
> Ordinal not in range (128)". Interestingly enough, the script as is
> works, just not the exefied version (The --packages encodings option to
> py2exe was given, of course).
>
> I searched the web for this error message and tried some of the advice
> I found (creating a sitecustomize.py; changing the default encoding in
> site.py). None of this helped, though. What also puzzles me is the fact
> that an older version of the program works (exefied on the same system).
> The program has undergone some major changes meanwhile but the code in
> question was just copied and pasted from the old version.
>
> Any ideas?
>
> TIA,
>
> c/hris.
>
I just finished beating a problem just like this to death. I had the
situtation where I wanted to combine the results of an lstat call with
other results from a Win32 api call (via win32all). "Combining" in this
case, meant something like:
s = ""
s += "My string"
s += Win32Result
s += "Another of my strings"
s += Result of a ctime call
s += Name of a file
I got the error you mentioned. After poking at it for a while, I
discovered that the Win32 API was returning *Unicode* strings, but all
my stuff was in ASCII. What was truly wierd about it is that the error
didn't get thrown until the last s += statement, even though the error
was introduced in the Win32Result statement. Python GURUS: Any idea why
this is??????
The fix was to change the offending line to: s += str(Win32Result).
HTH,
--
------------------------------------------------------------------------------
Tim Daneliuk
tundra at tundraware.com
More information about the Python-list
mailing list