pyusb 2.7 windows安装错误

Posted

技术标签:

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

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

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

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

【问题讨论】:

error: Unable to find vcvarsall.bat 的可能重复项。 This answer 也值得一读。如果一切都失败了,我发现安装 VS 2008 是唯一的办法。 Trying to build the basic python extension example fails (windows)的可能重复 id 尝试了所有方法,除了安装 vs2008。在 PyUSB 文件夹中挖掘时,我在 dist 文件夹中找到了一个 32 位的安装程序,我没有想到要运行它,但它确实有效。谢谢。 【参考方案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 的旧注册表项。

【讨论】:

以上是关于pyusb 2.7 windows安装错误的主要内容,如果未能解决你的问题,请参考以下文章

Windows 7 上的 Pyusb 找不到任何设备

已安装 libusb - 但未找到 pyUSB 后端

Windows 10 上与 python PyUSB 的简单通信 USB

python pyusb库使用教程在window10系统上操作USB(操作Intel Realsense D435)

pyusb 读取操作总是返回 '1'

尝试在 Windows 8 上安装 netCDF4 时出现“需要 Python 版本 2.7,在注册表中找不到”错误