Reputation: 379
When trying to use py2exe to convert a simple Python game I made into exe format, it gave me the following error:
Traceback (most recent call last):
File "C:\Users\Tali\Desktop\2exe.py", line 4, in <module>
setup(console=['test.py'])
File "C:\Python\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 243, in run
self._run()
File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 305, in _run
dlls = self.find_dlls(extensions)
File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 389, in find_dlls
self.dll_excludes)
File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 1021, in find_dep
endend_dlls
import py2exe_util
ImportError: DLL load failed: %1 is not a valid Win32 application.
I searched the web for about an hour, tried changing things in my program. Nothing works. Although my program uses the "random" library, I haven't seen a case in which it caused this kind of problem.
The install script:
from distutils.core import setup
import py2exe
setup(console=['test.py'])
Yes, both the scripts are in the same folder (Desktop). If it matters, I'm running on Windows Vista with Python 2.7
Thank you all very much in advance.
Upvotes: 18
Views: 30631
Reputation: 27806
py2exe looks very dated. The last release is four years old (from 2014, today is 2018)
The latest entry on the homepage part "news" is from 2008 (ten years old).
I guess it is better to use a different tool if you have errors with py2exe today.
Upvotes: 0
Reputation: 21
I was facing the same problem, I was using Python 2.7 (32 bits) on Windows 7 (64 bit) with py2exe-0.6.9.win64-py2.7.amd64.exe
, so the problem was I was using 32 bit Python and 64 bit py2exe. If you don't know whether Python package you are using is 32 bit or 64 bit, then run idle.bat from C:\Python27\Lib\idlelib\.
The first line in python window prompt will show you the python package details.
I uninstalled the py2exe-0.6.9.win64-py2.7.exe
by running "pip uninstall py2exe"
and installed py2exe-0.6.9.win64-py2.7.amd64.exe
which worked for me.
Upvotes: 0
Reputation: 169
I solved this problem by downloading "Microsoft Visual C++ Compiler for Python 2.7" http://www.microsoft.com/en-pk/download/details.aspx?id=44266
Upvotes: 2
Reputation: 44448
It seems the problem can be solved by downloading the correct py2exe installer for your platform and version.
I had the same problem here too. I was running on Windows 7 64 bit and had installed Python 2.7. My problem had to do with the fact that I installed py2exe-0.6.9.win32-py2.7.exe and the installer was not able to find python, even though it found the installation folder. Running python setup.py py2exe
at this stage gave me the exact same errors you're seeing.
I then downloaded py2exe-0.6.9.win64-py2.7.amd64.exe from this page and installed it. The installation went off without a hitch and python setup.py py2exe
game me lots of console output, created the build and dist folders and the expected executable.
Upvotes: 3
Reputation: 113945
From your comments, I see that you are doing this in the command prompt:
setup.py py2exe
from the py2exe tutorial's third step, you should be doing this instead (in the command promt):
python setup.py py2exe
A second look at the comments on the original question shows that this suggestion has already been made. +1 to joaquin to for this.
To try to answer your question again: Joaquin also mentioned that this might be a path issue. Rather than trying to fix that, you might want to consider the easier option of copying your python files into C:\Python. Then in the command prompt:
cd C:\Python
python setup.py py2exe
This has always worked for me
Hope this helps
Upvotes: 0
Reputation: 31
I met the same problem and I searched and I came here . I tried the way prompt by xiao-yu but I didn't work. So I found this from http://www.py2exe.org/index.cgi/Tutorial#Step52: 5.2.1. Bundling the C runtime DLL
If you do have the rights to redistribute MSVCR90.dll, there should be a copy of it in your Visual Studio install, under VC\redist\x86\Microsoft.VC90.CRT. Since Visual Studio 2008, you can't just copy this DLL file - you also need the manifest file that you'll find there. The redist.txt file states that you must distribute all three dlls and the unmodified manifest file and it is a violation of the license agreement to distribute only one of the dlls without the others (though py2exe only needs MSVCR90.dll.) The pertinent passage from the redist.txt file is as follows:-----------------------
so ,try it.
Upvotes: 3
Reputation: 321
I had exact the same problem.
Since I have windows 7 64bit, I downloaded py2exe-0.6.9.win64-py2.6.amd64.exe, which I suppose to be the 64bit version of py2exe. but it did not work, and I had the same error.
I changed to py2exe-0.6.9.win32-py2.6.exe, and it worked fine.
I guess you have to match the 32bit or 64bit with the python installation instead of the windows itself.
by the way, "setup.py py2exe" or "python setup.py py2exe" really does not matter, if you instructed windows to open *.py with python during the python installation.
Upvotes: 32
Reputation: 2019
Try installing the Microsoft Visual C++ 2008 Redistributable Package (x86): http://www.microsoft.com/downloads/en/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en
Upvotes: 2
Reputation: 3425
You can deal with py2exe and the headaches, I tried doing this, even when I had it right, it would error, though I did find the excellent python program gui2exe, this makes it extremely easy to make an exe (or any of the other supported formats).
Gui2exe: http://code.google.com/p/gui2exe/downloads/detail?name=GUI2Exe_0.5.0.zip
Examples: http://code.google.com/p/gui2exe/wiki/GUI2ExeExamples
Upvotes: 0