oka*_*ada 842 python windows pip failed-installation setup.py
我试图安装Python包dulwich:
pip install dulwich
Run Code Online (Sandbox Code Playgroud)
但我得到一个神秘的错误信息:
error: Unable to find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)
如果我尝试手动安装包,也会发生同样的情况:
> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)
fmu*_*cke 683
更新:评论指出此处的说明可能很危险.考虑使用Visual C++ 2008 Express版或专用的Microsoft Visual C++编译器Python(详细信息),而不是使用下面的原始答案.原始错误消息表示未安装所需的Visual C++版本.
对于Windows安装:
虽然运行安装包setup.py,Python 2.7版搜索已安装的Visual Studio 2008中你就可以欺骗的Python通过设置正确的路径使用较新的Visual Studio VS90COMNTOOLS调用之前的环境变量setup.py.
根据安装的Visual Studio版本执行以下命令:
SET VS90COMNTOOLS=%VS100COMNTOOLS%SET VS90COMNTOOLS=%VS110COMNTOOLS%SET VS90COMNTOOLS=%VS120COMNTOOLS%SET VS90COMNTOOLS=%VS140COMNTOOLS%警告:如下所述,如果您尝试编译python模块,则此答案不太可行.
有关详细信息,请参阅在Windows上为Python 2.7构建lxml.
nin*_*key 225
我找到了解决方案.我有完全相同的问题,并且错误,安装'amara'.我安装了mingw32,但需要配置distutils.
C:\programs\mingw\c:\programs\MinGW\bin;到PATH编辑(如果不存在则创建)distutils.cfg文件位于C:\Python26\Lib\distutils\distutils.cfg:
[build]
compiler=mingw32
Run Code Online (Sandbox Code Playgroud)现在跑easy_install.exe amara.
确保通过打开新设置来设置环境cmd.exe.
小智 220
您可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/安装编译版本
Jos*_*den 159
运行python.exe以显示编译的VC++版本(示例如下所示).
它是重要的使用了Python与自编译的Visual C++编译器的相应版本distilutils的
get_build_version防止混合版本(每彼得的警告).

使用下表[1]将内部VC++版本与相应的Visual Studio版本相匹配:
MSC v.1000 -> Visual C++ 4.x
MSC v.1100 -> Visual C++ 5
MSC v.1200 -> Visual C++ 6
MSC v.1300 -> Visual C++ .NET
MSC v.1310 -> Visual C++ .NET 2003
MSC v.1400 -> Visual C++ 2005 (8.0)
MSC v.1500 -> Visual C++ 2008 (9.0)
MSC v.1600 -> Visual C++ 2010 (10.0)
MSC v.1700 -> Visual C++ 2012 (11.0)
MSC v.1800 -> Visual C++ 2013 (12.0)
MSC v.1900 -> Visual C++ 2015 (14.0)
MSC v.1910 -> Visual C++ 2017 (15.0)
MSC v.1911 -> Visual C++ 2017 (15.3)
MSC v.1912 -> Visual C++ 2017 (15.5)
MSC v.1913 -> Visual C++ 2017 (15.6)
MSC v.1914 -> Visual C++ 2017 (15.7)
MSC v.1915 -> Visual C++ 2017 (15.8)
MSC v.1916 -> Visual C++ 2017 (15.9)
Run Code Online (Sandbox Code Playgroud)从上一步下载并安装相应版本的Visual Studio C++.
下面列出了VC++特定版本的附加说明.
对于只有 32位编译器,下载的Visual Studio C++ 2008 Express版本.
对于64位编译器[2] [3],请下载适用于Windows 7和.NET Framework 3.5 SP1的Windows SDK.
- 除了
Developer Tools >> Visual C++ Compilers节省安装您不需要的SDK工具的时间和磁盘空间之外,取消选中所有内容.
根据Microsoft的说法,如果您安装了Visual Studio 2010 SP1,它可能已经删除了VC++的编译器和库.
如果是这种情况,请下载Visual C++ 2010 SP1编译器更新.
如果您不需要Visual Studio IDE,请下载Visual Studio C++ 2015构建工具.
如果您不需要Visual Studio IDE,请下载Visual Studio 2017的构建工具.
建议:如果你同时安装了32位和64位Python,你可能还想使用virtualenv来创建单独的Python环境,这样你就可以一次使用一个或另一个而不会弄乱你的路径选择哪个Python版本到使用.
根据@srodriguex,您可以跳过手动加载批处理文件(步骤4-6),而是通过以下答案将一些批处理文件复制到Python正在搜索的位置.如果这不起作用,以下是最初为我工作的以下步骤.
打开一个 cmd.exe
在尝试安装需要C扩展的东西之前,请运行以下批处理文件以将VC++编译器的环境加载到会话中(即环境变量,编译器的路径等).
执行:
32位编译器:
注意:32位Windows安装仅具有C:\Program Files\预期效果
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
64位编译器:
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"
注意:是的,本机64位编译器在Program Files (x86).不要问我为什么.
此外,如果你想知道什么之间的区别vcvars64.bat和vcvarsx86_amd64.bat或更重要的区别amd64和x86_amd64,前者是对原生64位编译器工具,后者是可以在32位Windows安装运行64位交叉编译器.
更新:
如果由于某种原因你得到error: ... was unexpected at this time.的...是某些系列字符,那么你需要检查你的路径变量没有任何无关的字符,如额外的引号或流浪字符.如果批处理文件首先无法理解它,则它将无法更新会话路径.
如果进展顺利,则应根据VC++的版本和运行的命令获取以下消息之一:
对于32位编译器工具:
Setting environment for using Microsoft Visual Studio 20xx x86 tools.
对于64位编译器工具:
Setting environment for using Microsoft Visual Studio 20xx x64 tools.
现在,通过python setup.py install或运行设置pip install pkg-name
希望并指出行星正确对齐,以便VC++合作.
Col*_*nic 71
这是怎么回事?Python模块可以用C或C++编写(通常用于速度).如果您尝试使用Pip(或setup.py)安装此类软件包,则必须从源代码编译该C/C++.开箱即用,Pip将肆无忌惮地假设您安装了Microsoft Visual C++编译器.如果你没有它,你会看到这个神秘的错误消息"错误:无法找到vcvarsall.bat".
规定的解决方案是安装C/C++编译器,Microsoft Visual C++或MinGW(开源项目).但是,安装和配置任何一个都非常困难.(编辑2014:微软已经为Python 2.7 发布了一个特殊的C++编译器)
最简单的解决方案是使用Christoph Gohlke的Windows安装程序(.msi)来处理流行的Python包.他为Python 2.x和3.x,32位和64位构建安装程序.您可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载它们
如果你也认为"错误:无法找到vcvarsall.bat"是一个荒谬可疑且无益的消息,那么请在http://bugs.python.org/issue2943上对错误进行评论,将其替换为更有帮助的用户 -友好的消息.
为了进行比较,Ruby附带了一个包管理器Gem,并提供了一个准官方的C/C++编译器DevKit.如果您尝试安装没有它的软件包,您会看到这个有用的友好有用的消息:
请更新您的PATH以包含构建工具或从http://rubyinstaller.org/downloads下载DevKit 并按照http://github.com/oneclick/rubyinstaller/wiki/Development-Kit上的说明进行操作
你可以在/sf/answers/941200361/阅读更长时间的关于Python包装的咆哮
Mar*_*ers 64
您需要安装Microsoft编译器,与用于构建Python的编译器兼容.这意味着您需要Visual C++ 2008(或者更新,需要一些调整).
Microsoft现在提供了一个捆绑的编译器和头文件,只是为了能够在令人难忘的URL上编译Python扩展:
用于Python 2.7的Microsoft Visual C++编译器
这是一个相对较小的包; 下载85MB,无需管理员权限即可安装,无需重启.这个名称有点误导,编译器适用于最初使用Visual C++ 2008编译的任何Python版本,而不仅仅是Python 2.7.
如果您启动Python交互式提示或打印sys.version,请查找MSC版本字符串; 如果是,MSC v.1500你可以使用这个工具.
Microsoft已经发布了Python 2.7的编译器包,使人们可以更轻松地在Windows上构建和分发C扩展模块.用于Python 2.7的Microsoft Visual C++编译器(又名VC9)可从以下网址获得:http://aka.ms/vcpython27
该软件包包含为Python 2.7 32位和64位构建C扩展模块所需的所有工具和头文件(请注意,某些扩展模块需要第三方依赖项,如OpenSSL或libxml2,不包括在内).还支持使用Visual C++ 2008构建的其他Python版本,因此"Python 2.7"只是广告 - 它可以在2.6和3.2下正常工作.
请注意,您需要安装setuptools6.0或更新版本(在下载页面的系统要求中列出).您正在安装的项目必须使用setuptools.setup(),distutils否则自动检测将无法使用.
Microsoft已声明他们希望保持URL稳定,以便自动脚本可以轻松地引用它.
fpe*_*soa 54
我只是遇到了同样的问题,所以我会在这里讲述我的故事,希望它可以帮助其他人解决同样的问题并节省他们刚刚花费的几个小时:
我在Windows 7框中有mingw(g ++(GCC)4.6.1)和python 2.7.3,我正在尝试安装PyCrypto.
这一切都始于运行setup.py install时出现此错误:
error: Unable to find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)
通过将mingw指定为选择的编译器来搜索错误后轻松解决:
setup.py install build --compiler=mingw32
Run Code Online (Sandbox Code Playgroud)
问题是,我得到了一个不同的错误:
configure: error: cannot run C compiled programs.
Run Code Online (Sandbox Code Playgroud)
事实证明,我的反病毒阻止了新编译的.exe的执行.我刚刚禁用了防病毒"驻留盾"并转到下一个错误:
cc1.exe: error: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题:"无论是在你的Python目录中安装一个稍微旧版本的MinGW的,或编辑的distutils\cygwinccompiler.py删除的-mno-cygwin的所有实例." (从这里)
现在,我终于可以开始工作了.
YOU*_*YOU 23
看起来它正在寻找VC编译器,因此您可以尝试提及编译器类型-c mingw32,因为您有msys
python setup.py install -c mingw32
Run Code Online (Sandbox Code Playgroud)
use*_*629 20
我有python 2.73和Windows 7.对我有用的解决方案是:
C:\programs\mingw\bin;创建的distutils.cfg位于C:\Python27\Lib\distutils\distutils.cfg包含:
[build]
compiler=mingw32
Run Code Online (Sandbox Code Playgroud)要处理MinGW不再识别-mno-cygwin标志,请删除C:\ Python27\Lib\distutils\cygwincompiler.py第322行到第326行中的标志,因此它看起来像这样:
self.set_executables(compiler='gcc -O -Wall',
compiler_so='gcc -mdll -O -Wall',
compiler_cxx='g++ -O -Wall',
linker_exe='gcc',
linker_so='%s %s %s'
% (self.linker_dll, shared_option,
entry_point))
Run Code Online (Sandbox Code Playgroud)
Chr*_*ong 16
查看setup.py您要安装的软件包的文件.如果它是较旧的包,则可能是导入distutils.core.setup()而不是setuptools.setup().
我参与了这个(2015年)这些因素的组合:
来自http://aka.ms/vcpython27的Microsoft Visual C++编译器Python 2.7
使用较旧的包 distutils.core.setup()
尝试做python setup.py build而不是使用pip.
如果你使用最新版本的pip,它会强制(monkeypatch)包使用setuptools,即使它setup.py调用了distutils.但是,如果您没有使用pip,而只是在做python setup.py build,那么构建过程将使用distutils.core.setup(),它不知道编译器的安装位置.
步骤1:打开相应的Visual C++ 2008命令提示符
打开"开始"菜单或"开始"屏幕,然后搜索"Visual C++ 2008 32位命令提示符"(如果您的python是32位)或"Visual C++ 2008 64位命令提示符"(如果您的python是64位) .运行.命令提示符应该在标题栏中显示Visual C++ 2008 ....
第2步:设置环境变量
在刚刚打开的命令提示符中设置这些环境变量.
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
Run Code Online (Sandbox Code Playgroud)
参考http://bugs.python.org/issue23246
第3步:构建并安装
cd到你想要构建的包python setup.py build,然后运行python setup.py install.如果要安装到virtualenv中,请在构建之前将其激活.
小智 9
也许有人会感兴趣,以下为py2exe包工作了.(我有Windows 7 64位和便携式python 2.7,带有Windows SDK for Windows 7和.NET Framework 4的Visual Studio 2005 Express)
set VS90COMNTOOLS=%VS80COMNTOOLS%
Run Code Online (Sandbox Code Playgroud)
然后:
python.exe setup.py install
Run Code Online (Sandbox Code Playgroud)
在我的python 3.4 64位版本中花了将近2天的时间来解决这个问题:Python 3.4.3(v3.4.3:9b73f1c3e601,2015年2月24日,22:44:40)[MSC v.1600 64 bit(AMD64) )]在win32上
解决方案1,努力:(在阅读本文之前,请先阅读下面的解决方案2)最后,这对我有所帮助:
vcvars64.bat,C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64其中包含CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64或包含其他路径,具体取决于您安装的位置之后,我尝试pip install numpy但收到以下错误:
File "numpy\core\setup.py", line 686, in get_mathlib_info
raise RuntimeError("Broken toolchain: cannot link a simple C program")
RuntimeError: Broken toolchain: cannot link a simple C program
Run Code Online (Sandbox Code Playgroud)
我改mfinfo到None在C:\Python34\Lib\distutils\msvc9compiler.py每本/sf/answers/1616987431/
pip install numpy命令后我的avast防病毒试图干扰安装过程,但我很快就禁用了它花了很长时间 - 几分钟为numpy编译,我甚至认为有一个错误,但最后一切都很好.
解决方案2,简单:(
我知道这种方法已经在一个高度投票的答案中被提及,但让我重复,因为它真的更容易)经过所有这些工作后,我明白对我来说最好的方法就是使用已经来自http://www.lfd.uci.edu/~gohlke/pythonlibs/的预编译二进制文件.我需要一些本网站不包含的软件包(或软件包版本)的可能性很小.这种安装过程也快得多.例如,要安装numpy:
numpy?1.9.2+mkl?cp34?none?win_amd64.whl从该站点下载(如果你有Python 3.4 64位)pip install numpy?1.9.2+mkl?cp34?none?win_amd64.whl(或文件的完整路径,具体取决于命令提示符的打开方式)小智 7
当我尝试在我的python 3.5上安装numpy库时遇到了这个问题.解决方案是安装VS2015.我有VS2008,2012,2013,其中没有一个与python 3.5兼容.显然,较新版本的python依赖于较新版本的VS.
还要确保使用Visual Studio安装C++ Common Tools.
我想在Python 2.7下在Windows 10上运行pysph并且找不到vcvarsall.bat(来自distutils)
我的解决方案如下:
为Python 2.7安装Microsoft Visual C++(如@Michael建议)
在Windows 10上安装它(我的用户名是Andreas):
C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0
Run Code Online (Sandbox Code Playgroud)
将环境变量VS90COMNTOOLS设置为Visual C++ for Python 2.7的安装路径(参见上面的路径).
如果它仍然不起作用,那么在模块中进行修改
C:/Python27/lib/distutils
Run Code Online (Sandbox Code Playgroud)
文件msvc9compiler.py.在其中找到函数find_vcvarsall并进行以下修改.
替换线:
productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")
Run Code Online (Sandbox Code Playgroud)
同
productdir = os.path.join(toolsdir)
Run Code Online (Sandbox Code Playgroud)
这是vcvarsall.bat驻留在我的情况下的位置(检查,vcvarsall.bat在你的安装中).
我尝试了上述所有答案,并发现所有这些答案都不起作用,这可能是我使用Windows 8并安装了Visual Studio 2012.在这种情况下,这就是你所做的.
该vcvarsall.bat文件位于:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
只需选择文件,然后复制即可.
然后转到此目录:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools
并粘贴该文件.然后,一切都应该好.
您可以从http://go.microsoft.com/?linkid=7729279下载免费的Visual C++ 2008 Express Edition ,它将在安装期间设置VS90COMNTOOLS环境变量,因此可以使用兼容的编译器进行构建.
正如@PiotrDobrogost在评论中提到的,他对这个问题的回答详细说明了为什么Visual C++ 2008是正确构建的,但随着Python的Windows版本迁移到更新版本的Visual Studio,这可能会改变:构建lxml适用于Windows上的Python 2.7
我在Windows 7 x64上使用Python 3.4.1遇到了这个问题,不幸的是我需要的软件包没有合适的exe或者我可以使用的轮子.该系统需要一些"解决方法",详情如下(以及底部的TLDR).
使用Jaxrtech上面的答案中的信息,我确定我需要Visual Studio C++ 2010(sys.version返回MSC v.1600),所以我从他的答案中链接安装了Visual C++ 2010 Express,这是http://go.microsoft .com /?linkid = 9709949.我安装了所有更新,但正如您在下面看到的,这是一个错误.此时只应安装原始版本的Express(无更新任何内容).
vcvarsall.bat现在已经存在,但是在安装软件包时出现了新的错误query_vcvarsall raise ValueError(str(list(result.keys())))ValueError: [u'path'].此错误还有其他stackoverflow问题,例如为Python 2.7构建/安装C模块时的错误
我从答案中确定2010 Express只安装了32位编译器.要获得64位(和其他)编译器,您需要安装Windows 7.1 SDK.请参阅http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
这不会为我安装,安装程序返回错误installation failed with return code 5100.我在以下链接找到了解决方案:http://support.microsoft.com/kb/2717426.简而言之,如果安装了较新版本的x86和x64 Microsoft Visual C++ 2010 Redistributable,则它们与SDK安装程序中的版本冲突,并且需要先卸载.
然后安装SDK,但我注意到vcvars64.bat仍然不存在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin,也没有其子文件夹.vcvarsall.bat运行vcvars64批处理文件,所以没有它,蟒蛇包仍然无法安装(我忘了,在这个时候显示的错误).
然后我在这里找到了一些说明:http://www.cryptohaze.com/wiki/index.php/Windows_7_Build_Setup#Download_VS_2010_and_Windows_SDK_7.1
按照说明,我已经安装了Express和7.1 SDK,所以安装了SDK 7.1 SP1,并做了缺少头文件修复.然后我手动创建了包含内容的vcvars64.bat CALL setenv /x64.我会在这里粘贴所有这些说明,这样他们就不会迷路.
第1步是下载Visual Studio Express 2010.
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express 是一个很好的起点.下载安装程序,然后运行它(vc_web.exe).您不需要SQL 2008附加下载.
您还需要64位编译器的Windows SDK(目前为7.1) - 除非您想要仅完全支持32位版本,而这些版本并不完全支持...
http://www.microsoft.com/en-us/download/details.aspx?id=8279是一个很好的下载点 - 你需要在下载时运行winsdk_web.exe!
这里的默认安装就好了.
最后,下载并安装Windows SDK 7.1 SP1更新:http: //www.microsoft.com/en-us/download/details.aspx?id = 4422
并且,修复丢失的头文件,VS2010 SP1. http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5
并且,血淋淋的地狱,修复VS2010 Express丢失的批处理文件.这是彻头彻尾的荒谬.
在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin\amd64中,使用以下命令创建"vcvars64.bat"(您需要以管理员身份运行):
CALL setenv/x64
我的python包仍然没有安装(无法回忆错误).然后我发现了一些指令(下面复制)使用专用SDK 7.1命令提示符,请参阅:https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html
别介意这个问题.有人在这里注意到菜单上的这个项目:开始 - >所有程序 - > Microsoft Windows SDK v7.1 - > Windows SDK 7.1命令提示符
这会运行一个批处理作业,似乎为编译器设置工作环境.在该提示符下,您可以键入"setup.py build"或"setup.py install".
我按照说明打开了Windows SDK 7.1命令提示符,并用它在python包上运行easy_install.最后,成功!
TLDR ;
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat内容CALL setenv /x64使用此链接下载并安装Visual C++ 2015 Build Tools。它将自动下载visualcppbuildtools_full.exe并安装Visual C++ 14.0,而无需实际安装 Visual Studio。安装完成后,重试 pip install 就不会再出现错误了。
我已经在以下平台和版本上对其进行了测试:
Python 3.6 on Windows 7 64-bit
Python 3.7 on Windows Server 2016 (64-bit system)
Python 3.8 on Windows 10 64-bit
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
866516 次 |
| 最近记录: |