可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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 ('', ('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?
回答1:
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/
回答2:
Another possible reason for this problem to appear is that you have just installed Visual Studio and the command prompt you're using had been hanging around from the time before the installation.
This is because MSVC installer sets few environment variables and one of these variables ( VS90COMNTOOLS )has to be set for vcvarsall.bat to execute correctly. But each running program in Windows holds its own local copy of environment variables that gets inherited (copied) from parent process upon child start-up. Thus, after child has started, it does not receive alterations performed on the system-level envvars. And the only way of getting updated environment variables is trough spawning a new instance of a child process with parent that has updated version of envvars.
回答3:
As stated it's trying to use a 32-bit compiler for 64-bit python. I was able to build successfully by:
- Finding
vcvarsx86_amd64.bat
in C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64
(depends on your setup) - Open a cmd prompt
- Run
SET VS90COMNTOOLS=%VS120COMNTOOLS%
(depends on setup, see https://stackoverflow.com/a/10558328/2362877) - Run
vcvarsx86_amd64.bat
- Then
pip install
回答4:
None of these answers worked for me but I found the solution on the issue tracker:
- Open cmd.
- cd "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"
- Type vcvars32.bat or vcvars64.bat
- In the same prompt and -without closing: cd back to the Python module you're trying to install.
- The code should now install.
Source: http://bugs.python.org/issue7511
回答5:
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:
> "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" > setup.py -q install
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:
> "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release > setup.py -q install
回答6:
Python for Windows extensions is only supported on
32-bit MS Windows (95/98), 32-bit MS Windows (NT/2000/XP), All 32-bit MS Windows (95/98/NT/2000/XP), Win2K, WinXP, WinCE
Taken from the sourceforge project page. Seems like you may be out of luck!
EDIT: However... reading this seems to imply otherwise.
回答7:
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.