Menu ▾ ▴

#706 pywin32-64 fails to install on Win 7-64/Py 3.5-64

v1.0 (example)
open
nobody
None
5
2015-12-11
2015-11-12
No

I just did a clean install of Python 3.5 64-bit into Windows 7 64-bit SP1.
I then installed pywin32. In both cases I used Admin privileges.

Unfortunately, at the end of the pywin32 install I got this error message displayed in the installer window:

Traceback (most recent call last):
File "<string>", line 613, in <module>
File "<string>", line 321, in install
File "<string>", line 159, in LoadSystemModule
File "C:\Program Files\Python 3.5\lib\imp.py", line 342, in load_dynamic
return _load(spec)
File "<frozen importlib._bootstrap="">", line 693, in _load
File "<frozen importlib._bootstrap="">", line 666, in _load_unlocked
File "<frozen importlib._bootstrap="">", line 577, in module_from_spec
File "<frozen importlib._bootstrap_external="">", line 903, in create_module
File "<frozen importlib._bootstrap="">", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.</frozen></frozen></frozen></frozen></frozen></string></string></module></string>

The packages I used:
python-3.5.0-amd64.exe
pywin32-219.win-amd64-py3.5.exe

Discussion

  • Erik Purins

    Erik Purins - 2015-12-07

    Not sure if it's the same problem, but I hit a missing vc redist file in the post-install scripts going this route, and manually installed vc redist.If you install the missing vcredist for vc2015, does it work for you?

     
  • Bill Miller

    Bill Miller - 2015-12-11

    I just had the same issue.
    The problem is that Python 3.5 is built with the VS 2015 (non XP) CRT and the pyWin32 pyd dll's are built with VS 2010 CRT.
    Therefore DLL loads fail if VS 2010 CRT isn't found.
    Note though that I don't think Python 35 actually runs the VS2015 redist - looks like the vcruntime140.dll just sits in the root Python folder. (Which I believe is a bad thing since VC CRT updates will miss this.)

    So in any case I suggest a pyWin32 35 rebuild using the same runtime as Python 35 - makes sense right? Who knows you might get heap corruption between the different CRT's...