Niv
Niv

Reputation: 379

Py2Exe: DLL load failed

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

Answers (9)

guettli
guettli

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

Usman Mushtaq
Usman Mushtaq

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

Bilal Mahmood
Bilal Mahmood

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

Carl
Carl

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

inspectorG4dget
inspectorG4dget

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

katero
katero

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

xiao-yu
xiao-yu

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

Victor Ionescu
Victor Ionescu

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

Zimm3r
Zimm3r

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

Related Questions