【问题标题】:pyusb 2.7 windows install errorpyusb 2.7 windows安装错误
【发布时间】:2013-08-20 16:55:10
【问题描述】:

我知道有人问过类似的问题,但没有一个解决方案适合我/我遇到不同的错误。我正在尝试使用 Python 2.7 在 64 位 Windows 7 VM 上安装 PyUSB。

当我从命令行运行安装时,出现错误:无法找到 vcvarsall.bat。当我尝试运行已编译的可执行文件进行安装时,我收到一条错误消息,提示在注册表中找不到 Python 2.7。

对此的任何帮助将不胜感激。

【问题讨论】:

标签: python pyusb


【解决方案1】:

如果您还没有安装 VS 2008,请不要安装。

如果您已经安装了 VS 2008 并且无法获得要编译的扩展,我将卸载 VS 2008 并删除它的目录在程序文件下。问题可能是 express 版本不附带 64 位编译器。

要获取编译扩展文件,请从以下位置安装适用于 Windows 的 Python 2.7 编译器 http://www.microsoft.com/en-gb/download/details.aspx?id=44266 说明说需要 setuptools 6.0,但即使更新后我也无法让它工作。

安装编译器后,找到包含 vcvarsall.bat 的目录。对我来说是

C:\Users\MY_USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0

在那里打开powershell并运行.\vcvarsall.bat amd64

如果你看到这个:

PS C:\Users\MY_USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0> .\vcvarsall.bat amd64
Setting environment for using Microsoft Visual Studio 2008 x64 tools.

一切都好。

接下来的步骤很奇怪但必不可少,并在最后进行了解释。将目录 9.0 重命名为 VC。

添加环境变量 VS90COMNTOOLS 并将值设置为 bin 目录的路径,现在应该是: C:\Users\MY_USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\VC\VC\bin

现在应该一切正常了。去在一个扩展文件上测试它:

python setup.py build_ext --inplace

9.0为什么要重命名为VC?进入你的python安装目录,找到distutils目录:python_base_dir\Lib\distutils

在您选择的文本编辑器中打开 msvc9compiler.py 并找到第 247 行。

productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")

这意味着 distutils 将简单地导航到您添加的环境变量,上两层然后下到 VC 文件,希望找到 vcvarsall.bat。

您可以编辑此文件作为重命名 9.0 -> VC 的替代方法,但我认为那是“更脏”。

还要注意不需要 VS 2008 目录的原因是第 242 行:

if not productdir or not os.path.isdir(productdir):

如果目录被删除,它将忽略 VS 2008 的旧注册表项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多