Encoding¶
Solution 1¶
In py2exe 0.5, if the encodings are not found in the built exe (indicated by
LookupError: no codec search functions registered error message), add these
two to the includes:
You can do this by adding a line
to your setup.py file.
That replaces the '--force-imports encodings' command line option from the
0.4py2exe
Solution 2¶
Adding 'encodings', 'encodings.*' to includes includes ALL encodings. I'm
perfectly happy with only having latin-1 present (at least for some application,
which will only be used in western europe)
so recommended adding
20041201HAM
Sample¶
To avoid misunderstandings here is a sample setup.py
from distutils.core import setup
import py2exe
setup(console=["MyScript.py"],
options = {"py2exe": {"packages": ["encodings"]}},
)
(which by the way is roughly the same as
setup.py py2exe --packages encodings.)
changed behaviour¶
just "to be sure" I included "encodings" within options and again within the setup-command:
includes = ["encodings",
"encodings.latin_1",]
[...]
options = {"py2exe": { # create a compressed zip archive
"compressed": 1,
"optimize": 2,
"excludes": excludes,
"includes": includes,
}}
[...]
setup(
options = options,
# The lib directory contains everything except the executables and the python dll.
zipfile = zipfile,
windows = [wxprog],
console=[consprog],
# use out build_installer class as extended py2exe build command
cmdclass = {"py2exe": build_installer},
packages = ["encodings"], #this line is rather wrong, at least not helpfull
data_files=[("",["kategorien.xml","skm.cmd"]),
]
)
py2exe 0.5.0 silently ignored the line
py2exe 0.5.2 now uses this line for something and fails with:
so: just trash that line and everything is sunny again. HAM20040713