尝试安装Python for Windows扩展的值错误

use*_*847 27 python command-line

我已经安装了Microsoft Visual Studio 2008.我下载了用于Windows扩展的zip文件Python,并将内容解压缩到我的Python27文件夹中.现在有一个名为pywin32-214的子文件夹.(32部分是一个问题吗?我在64位系统上.)这是命令行的成绩单:

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']
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做.救命?

Ily*_*lya 20

出现此问题的另一个可能原因是您刚刚安装了Visual Studio,并且您正在使用的命令提示符在安装之前已经处于闲置状态.

这是因为MSVC安装程序设置了一些环境变量,并且必须为vcvarsall.bat设置其中一个变量(VS90COMNTOOLS)才能正确执行.但是,Windows中的每个运行程序都拥有自己的环境变量本地副本,这些变量在子启动时从父进程继承(复制).因此,在子项启动后,它不会接收在系统级envvars上执行的更改.获取更新环境变量的唯一方法是使用已更新envvars版本的父级生成子进程的新实例.


cgo*_*lke 17

如果您有64位Python安装:

安装"Microsoft Visual Studio 2008 Professional Edition"并启用"X64编译器和工具"选项.

或者,从http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/下载pywin32-214.win-amd64-py2.7.exe

  • 这是最不寻常的.您可以尝试http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32上的替代安装程序 (2认同)

frm*_*ryr 9

如上所述,它试图使用32位编译器进行64位python.我能够通过以下方式成功构建:

  1. 寻找vcvarsx86_amd64.batC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64(取决于你的设置)
  2. 打开cmd提示符
  3. 运行SET VS90COMNTOOLS=%VS120COMNTOOLS%(取决于设置,请参阅/sf/answers/739082991/)
  4. vcvarsx86_amd64.bat
  5. 然后 pip install <package>


Mat*_*rts 8

这些答案都不适合我,但我在问题跟踪器上找到了解决方案:

  1. 打开cmd.
  2. cd"C:\ Program Files(x86)\ Microsoft Visual Studio 9.0\VC\bin"
  3. 键入vcvars32.bat或vcvars64.bat
  4. 在相同的提示和 - 没有关闭:cd回到你试图安装的Python模块.
  5. 代码现在应该安装.

资料来源:http://bugs.python.org/issue7511