pyusb 2.7 windows安装错误

时间:2013-08-18 23:14:36

标签: python pyusb

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

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

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

1 个答案:

答案 0 :(得分:0)

如果您尚未安装VS 2008,请不要。

如果您已经安装了VS 2008并且无法获得编译扩展,我会在程序文件下卸载VS 2008并删除它的目录。问题可能是快速版本不随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将简单地导航到您添加的环境var,上升两个级别然后下载到VC文件中,希望找到vcvarsall.bat。

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

另请注意,需要没有VS 2008目录的原因是第242行:

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

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