I have Microsoft Visual Studio 2008 installed already. I downloaded the zip file Python for Windows extensions and extracted the contents into my Python27 folder. There's now a subfolder called pywin32-214. (Is the 32 part a problem? I'm on a 64-bit system.) Here's a transcript from the command line:
C:\Python27\pywin32-214>setup.py -q install
Building pywin32 2.7.214.0
Traceback (most recent call last):
File "C:\Python27\pywin32-214\setup.py", line 2152, in <module>
('', ('pywin32.pth',)),
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\pywin32-214\setup.py", line 1251, in run
install.run(self)
File "C:\Python27\lib\distutils\command\install.py", line 563, in run
self.run_command('build')
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\pywin32-214\setup.py", line 596, in run
build.run(self)
File "C:\Python27\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name)
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run
self.build_extensions()
File "C:\Python27\pywin32-214\setup.py", line 858, in build_extensions
self.compiler.initialize()
File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsal
l
raise ValueError(str(list(result.keys())))
ValueError: [u'path']
I don't know what to make of this. Help?
As stated it's trying to use a 32-bit compiler for 64-bit python. I was able to build successfully by:
vcvarsx86_amd64.bat
inC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64
(depends on your setup)SET VS90COMNTOOLS=%VS120COMNTOOLS%
(depends on setup, see https://stackoverflow.com/a/10558328/2362877)vcvarsx86_amd64.bat
pip install <package>
If you have a 64 bit Python installation:
Install "Microsoft Visual Studio 2008 Professional Edition" with the "X64 Compiler and Tools" option enabled.
Alternatively, download pywin32-214.win-amd64-py2.7.exe from http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/
None of these answers worked for me but I found the solution on the issue tracker:
Source: http://bugs.python.org/issue7511
If you are fixed on Python 2.7 64-bit (like I am) and too cheap to buy VS2008 Professional, you can also download VS2008 Express and install the Windows 7 SDK to get a compatible 64-bit compiler for free. After that, run the Windows 7 SDK SetEnv.Cmd script and then the setup.py:
The SetEnv.Cmd should set up all the environment variables you need for build. When it runs, there should be a message that says "Targeting Windows 7 x64 Debug". You can also use this command to compile in Release mode:
Python for Windows extensions is only supported on
Taken from the sourceforge project page. Seems like you may be out of luck!
EDIT: However... reading this seems to imply otherwise.
I tried all the other answers and a lot more. Ended up installing python 32-bit, which fixed the issue right away.
If this is an option, it's most likely the easiest fix.