2013-08-18 64 views
0

我知道類似的東西已被問到,但沒有解決方案爲我工作/我得到不同的錯誤。我試圖在Python 2.7上安裝64位Windows 7虛擬機上的PyUSB。pyusb 2.7窗口安裝錯誤

當我從命令行運行安裝時,出現錯誤:無法找到vcvarsall.bat。當我嘗試運行編譯的可執行文件進行安裝時,出現錯誤,說在註冊表中找不到Python 2.7。

任何幫助,這將不勝感激。

+0

可能重複的[錯誤:無法找到vcvarsall.bat](http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat)。 [這個答案](http://stackoverflow.com/questions/3047542/building-lxml-for-python-2-7-on-windows/5122521#5122521)也值得一讀。如果一切都失敗了,我發現安裝VS 2008是唯一的辦法。 – Mac

+0

[試圖構建基本的python擴展示例失敗(windows)]的可能的重複(http://stackoverflow.com/questions/4635734/trying-to-build-the-basic-python-extension-example-fails-windows ) – martineau

+0

id嘗試了除安裝vs2008之外的所有內容。同時在PyUSB文件夾中進行挖掘時,我在dist文件夾中找到了一個32位的安裝程序,但沒有發生這種情況,但它工作正常。謝謝。 – chris

回答

0

如果您還沒有安裝VS 2008,請不要。

如果你已經安裝了VS 2008並且無法獲得擴展編譯,我會卸載VS 2008和,刪除它的目錄下的程序文件。問題很可能是快速版本不支持64位編譯器。

要獲得編譯擴展名的文件,從 http://www.microsoft.com/en-gb/download/details.aspx?id=44266 安裝Python 2.7編譯器用於Windows的說明說,setuptools的是需要6.0,但我無法得到它甚至可以更新後的工作。

編譯器安裝完成後,找到包含vcvarsall.bat的目錄。對我來說是

C:\用戶\ MY_USER_NAME \應用程序數據\本地\程序\ COMMON \微軟\的Visual C++爲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老註冊表項。