MozillaBuild + PyWin32 does not work on Windows 8 32-bit

RESOLVED INVALID

Status

mozilla.org
MozillaBuild
RESOLVED INVALID
5 years ago
3 years ago

People

(Reporter: armenzg, Unassigned)

Tracking

Details

(Reporter)

Description

5 years ago
If you do this:
* Install mozilla-build 1.6
REG ADD "HKLM\SOFTWARE\Python\PythonCore\2.7\InstallPath" /t REG_SZ /d "C:\mozilla-build\python" /f
* Install pywin32 to C:\mozilla-build\python27
it won't work. You can check by doing this:
C:\mozilla-build\python\python.exe
import win32api
It will fail with this:
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32api
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.

My work around is this:
* Install mozilla-build 1.6
* Install python2.7 to C:\mozilla-build\python27
* Install pywin32 which gets installed to C:\mozilla-build\python27

FTR, if you want to use virtualenv you would have to copy the python27.dll around as well. This dll comes inside of mozilla-build\python.

FTR, the installation at the top works perfectly fine on Windows 8 *64-bit*.
Oops - I just got a fair way through a comment when I noticed this was 32bit only!

You said:
> FTR, the installation at the top works perfectly fine on Windows 8 *64-bit*.

> REG ADD "HKLM\SOFTWARE\Python\PythonCore\2.7\InstallPath" /t REG_SZ /d
> "C:\mozilla-build\python" /f

This step needs would need a "/reg:32" added to the end, otherwise it ends up in the 64bit part of the registry, and the 32bit build of pywin32 will not see the newly added values, right?  I'm just trying to make sure I understand.

With that added flag, I can confirm it does indeed work.  I'll try with a 32bit build (but for my interest, why are you bothering with a 32bit environment?)
(Reporter)

Comment 2

5 years ago
I thought the reg value is only to allow pywin32 to know which directory to install to and not need to change the value of the installer. In fact, I believe the installer knew that it had to install pywin32 into C:\mozilla-build\python.
Does the reg value do more than just indicate the path on which site-packages to install unto?

Before pywin32, it would complain that "I know nothing about win32api" when I imported. After the installation it would complain with "ImportError: DLL load failed: The specified module could not be found."

I will try it and see what happens.

(In reply to Mark Hammond (:markh) from comment #1)
> With that added flag, I can confirm it does indeed work.  I'll try with a
> 32bit build (but for my interest, why are you bothering with a 32bit
> environment?)

We're aiming to have Windows 8 32-bit test infrastructure to run unit tests and talos on them.
(In reply to Armen Zambrano G. [:armenzg] from comment #2)
> I thought the reg value is only to allow pywin32 to know which directory to
> install to and not need to change the value of the installer. In fact, I
> believe the installer knew that it had to install pywin32 into
> C:\mozilla-build\python.
> Does the reg value do more than just indicate the path on which
> site-packages to install unto?

I wasn't very clear.  The /reg:32 flag is needed to install a 32bit pywin32 on a 64bit OS, otherwise the 32bit pywin32 installer will not find the registry key and so not know where to install into.  That flag would not be necessary on a 32bit Windows 8, nor if you were using a 64bit Python + 64bit pywin32 on a 64bit win8.
I just tried this same process on a 32bit Windows 8 and it worked fine.  However, this was done after installing the vmware tools, which installed VS2008 redistributables.  pywin32 doesn't install these - it assumes Python has been installed, which does.  So the best I can guess is that this package is also needed on a win8 clean install for things to work correctly - but OTOH, the lack of these would probably stop Python itself from working.

So I'm at a bit of a loss...
I would assume Win8 ships with the VC2008 redist preinstalled. I could be wrong.
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #5)
> I would assume Win8 ships with the VC2008 redist preinstalled. I could be
> wrong.

It was showing up in "add/remove programs" which I wouldn't expect (although that might just mean the "redist" package was installed, but that might be possible even if the OS did have it pre-packaged...)
(Reporter)

Comment 7

5 years ago
BTW, in any case this is not a major problem for me as I found a workaround and Windows 8 *32-bit* will most likely not be a high priority.

I can try re-installing with "/reg:32" and see if the problem still persists.
Is there still an issue here?
(Reporter)

Updated

3 years ago
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.