可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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 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.
回答1:
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.
回答2:
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.
回答3:
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.
回答4:
回答5:
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
回答6:
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
回答7:
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
回答8:
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.