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:
1 'encodings', 'encodings.*'
You can do this by adding a line
1 options = {"py2exe": {"packages": ["encodings"]}},
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
1 'encodings', 'encodings.latin_1'
20041201HAM
Sample
To avoid misunderstandings here is a sample setup.py
(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:
1 includes = ["encodings",
2 "encodings.latin_1",]
3 [...]
4 options = {"py2exe": { # create a compressed zip archive
5 "compressed": 1,
6 "optimize": 2,
7 "excludes": excludes,
8 "includes": includes,
9 }}
10 [...]
11
12 setup(
13 options = options,
14 # The lib directory contains everything except the executables and the python dll.
15 zipfile = zipfile,
16 windows = [wxprog],
17 console=[consprog],
18 # use out build_installer class as extended py2exe build command
19 cmdclass = {"py2exe": build_installer},
20 packages = ["encodings"], #this line is rather wrong, at least not helpfull
21 data_files=[("",["kategorien.xml","skm.cmd"]),
22 ]
23 )
py2exe 0.5.0 silently ignored the line
1 packages = ["encodings"], #this line is rather wrong, at least not helpfull
py2exe 0.5.2 now uses this line for something and fails with:
running py2exe running build_py error: package directory 'encodings' does not exist
so: just trash that line and everything is sunny again. HAM20040713