dll load errors in python executable made from pyw

2019-02-27 11:57发布

问题:

I created python executables with py2exe with both 64bit python interpreter and 32 bit python interpreter.

In my program, I use the module pywin32 com, and so I dl'ed and installed both the 64bit and 32bit versions of the program prior to creating the executable.

The 64bit exe works fine, but the 32 bit one has the following problem:

Traceback (most recent call last):
  File "program.py", line 11, in <module>
  File "win32com\__init__.pyc", line 5, in <module>
  File "win32api.pyc", line 12, in <module>
  File "win32api.pyc", line 10, in __load
ImportError: DLL load failed: The specified procedure could not be found.

I tried both versions by running the source directly, ie python program.py and C:\python_32\python.exe program.py and both work fine.

Note I tested the 64bit exe on a 64bit windows 7 computer and the 32bit exe on a 32bit windows XP computer.

回答1:

Older than everything ever, but I stumbled on this problem today, and if anyone else does, what I ran was:

python /c/Python26/Scripts/pywin32_postinstall.py -install from the commandline (change values to fit). That worked:

$ python /c/Python26/Scripts/pywin32_postinstall.py -install
Copied pythoncom26.dll to C:\WINDOWS\system32\pythoncom26.dll
Copied pythoncomloader26.dll to C:\WINDOWS\system32\pythoncomloader26.dll
Copied pywintypes26.dll to C:\WINDOWS\system32\pywintypes26.dll
Registered: Python.Interpreter
Registered: Python.Dictionary
Registered: Python
-> Software\Python\PythonCore\2.6\Help[None]=None
-> Software\Python\PythonCore\2.6\Help\PythonwinReference[None]='c:\\Python26\\Lib\\site-packages\\PyWin32.chm'
Pythonwin has been registered in context menu
Creating directory c:\Python26\Lib\site-packages\win32com\gen_py
Shortcut for Pythonwin created
Shortcut to documentation created
The pywin32 extensions were successfully installed.`

(On WinXP SP3)



回答2:

Had the above noted errors with my python27 pywin32 installation that got installed after my installation of ArcGIS on a windows2008 R2 server (trying to centralize our scripts). Found that for me, I had to start a command line window with run as adminstrator (right click to get that option in windows) and then run the following command line from the c:\arcpy27\arcgis10.1>python c:/arcpy27/arcgis10.1/scripts/pywin32_postinstall.py -install

I see a lot of people have run into this issue and I tried multiple things, but this was finally the solution that managed to get pywin32 installed.

Thanks so much for your solution. Took me a couple of install and uninstalls before I finally ran across your solution and modified it for my version.