Sta*_*ner 18 python windows 64-bit pip visual-studio-2010
我正在创建一个带有干净安装的python 3.3,64位版本的virtualenv.(注意:我在我的计算机上安装了几个python,包括WinPython,但是想为我正在处理的几个项目设置干净小巧的virtualenv .WinPython版本工作正常.)当我用pip尝试安装包时,我收到了一条错误消息(如果需要,可以包含点子日志).最终,错误消息的最后几行是:
File "c:\python33-b\Lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall raise ValueError(str(list(result.keys())))
ValueError: ['path']
Run Code Online (Sandbox Code Playgroud)
我调查了msvc9compiler.py中函数query_vcvarsall的结果.我发现这个函数正在我的计算机上查找来自MS Visual Studio 10 Express的vcvarsall路径.它正在寻找4个组件:INCLUDE =,PATH =,LIB =和LIBPATH =.这些是特定于MS VS 2010.我的安装向此函数发送了"amd64"参数.除了PATH =语句之外,它没有找到任何内容,但确实找到了vcvarsall.bat文件.当我欺骗这个函数使用"x86"参数时,它找到了所有4个语句,看起来好像运行正常.
我花了一些时间在网上研究这个.我发现MS VS Express 2010默认安装为32位.必须将其设置为以64位运行(这意味着它将设置上面所需的语句.)显然存在一个错误,并且此版本未安装64位工具.所以我安装了MS SDK以安装64位工具.然后我发现有一个修复程序并安装它(在链接中列出).
有几种方法概述了为64位VS创建路径.一个是vcvarsall amd64在MS VS的命令行上运行.这导致一条消息说我的计算机上没有安装这些工具.这些工具将驻留在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64目录中.它显然正在寻找的文件是vcvars64.bat(或类似的东西).我有目录但不是批处理文件.(建议使用x86_amd64方法,但它有所有相同的问题.)
第二个建议是setenv /x64从SDK命令行运行.我跑了,似乎运行正常.但是,当我去的时候,我尝试通过pip安装软件包,我收到了同样的错误消息.
我的问题最终是如何让pip顺利运行?只是提一下,是的,我在每次安装后再次测试pip之前重新启动并尝试修复此问题.
以下是一些帮助我做到这一点的网站:
1)从Visual Studio 2010启动64位命令提示符
2)为MS VS 2010命令行构建设置路径和环境变量:http:
//msdn.microsoft.com/en-us/library/f2ccy3wt.aspx
3)VS2010 Express和缺少的x64编译器:https://social.msdn.microsoft.com/Forums/en-US/e0ef4613-d90f-4eec-90db-41339ed31367/vs2010-express-and-missing-x64-compiler?forum
= Vsexpressinstall
4)FIX:如果安装了Windows SDK v7.1,则在将Visual Studio 2010 Professional或Visual Studio 2010 Express升级到Visual Studio 2010 SP1时会删除Visual C++编译器:http:
//support.microsoft.com/kb/2519277
5)msvc9compiler.py:尝试使用VC Express编译时的ValueError:http://bugs.python.org/issue7511
Sta*_*ner 22
最终我能够得到pip运行.简而言之(以上信息冗余)这里是我为python 3.3安装64位软件包所做的:
1)安装Microsoft Visual C++ 2010 Express 下载 (http://www.visualstudio.com/downloads/download-visual-studio-vs)
2)安装的Microsoft SDK 7.1(Windows 7)(http://www.microsoft.com/en-us/download/details.aspx?id=8279)
3)在SDK中构建/启用64位工具.转到开始菜单,在Microsoft Windows SDK v7.1文件夹下,选择Windows SDK 7.1命令提示符.贝壳会出现.键入以下命令setenv /x64.
4)我安装了一个修复程序(不知道是否最终需要它.)(http://support.microsoft.com/kb/2519277)
5)在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin\amd64下创建了一个新的vcvars64.bat文件.在新的批处理文件中,我只包含该行CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64.我假设它的作用是强制distutils使用SDK中的C++编译器.在此之后正确安装了Pip.据我所知,C++编译器必须与用于编译python 3.3的编译器相同.根据我的研究,似乎安装的SDK是相同的编译器,但只是不要求原始的 vcvars64.bat文件存在.此信息来自:http://www.w7forums.com/threads/vcvarsall-bat-no-64bit-support-vcvars64-bat-missing.6606/.如果我在使用此解决方案时遇到问题,请纠正我.谢谢.
小智 5
对我来说,执行步骤1,2和5就足够了,不需要步骤4:
1)安装Microsoft Visual C++ 2010(在我的情况下不是Express)
2)安装Microsoft SDK 7.1(Windows 7)
跳过3和4.
5)创建包含行CALL"C:\ Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv"的C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat. cmd"/ x64
完成:pip3安装numpy工程.
| 归档时间: |
|
| 查看次数: |
31804 次 |
| 最近记录: |