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:

'encodings', 'encodings.*'

You can do this by adding a line

options = {"py2exe": {"packages": ["encodings"]}},

to your setup.py file.

That replaces the '--force-imports encodings' command line option from the [http://starship.python.net/crew/theller/py2exe/ 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

'encodings', 'encodings.latin_1'

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.)