Python Pip 安装错误:找不到 vcvarsall.bat。尝试了所有解决方案[重复]
Posted
技术标签:
【中文标题】Python Pip 安装错误:找不到 vcvarsall.bat。尝试了所有解决方案[重复]【英文标题】:Python Pip install Error: Unable to find vcvarsall.bat. Tried all solutions [duplicate] 【发布时间】:2015-02-24 13:07:49 【问题描述】:我尝试使用
为 Python 2.7.8 (anaconda 2.1.0) 32 位安装 Scrapypip install scrapy
我得到了这个错误
error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).
我已遵循这些 stackover flow 问题中的解决方案。没有任何效果。
Microsoft Visual C++ Compiler for Python 2.7
Can't find vcvarsall.bat file
error: Unable to find vcvarsall.bat
Getting "error: Unable to find vcvarsall.bat" when running "pip install numpy" on windows7 64bit
pip install gives error: Unable to find vcvarsall.bat
How do I point easy_install to vcvarsall.bat?
pip install mysql-python returns unable to find vcvarsall.bat
这是错误,上下几行:
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt
-> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution opt
ion: 'bugtrack_url'
warnings.warn(msg)
error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).
----------------------------------------
Command "C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:
\\Users\\San\\AppData\\Local\\Temp\\pip-build-wp6ei6r9\\lxml\\setup.py';exec(com
pile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __f
ile__, 'exec'))" install --record C:\Users\San\AppData\Local\Temp\pip-kfkzr_67-r
ecord\install-record.txt --single-version-externally-managed --compile" failed w
ith error code 1 in C:\Users\San\AppData\Local\Temp\pip-build-wp6ei6r9\lxml
我有 Microsoft Visual Studio 12.0 和适用于 Python 2.7 的 Microsoft Visual C++ 编译器包,它们都有 vcvarsall.bat 文件。
我有一个名为“VS120COMNTOOLS”的系统变量,它的路径设置为
C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\
我还将两个路径都添加到了我的环境变量中。我也试过只添加一个,然后添加另一个。我的路径是这样的
C:\Program Files\Java\jdk1.7.0_25\bin;\Python27;\Python2\python.exe;C:\Python27\Scripts\;C:\Users\San\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\;C:\Program Files\Microsoft Visual Studio 12.0\VC\;
我还通过我的设置工具进行了更新(我认为是版本 8),它应该自动检测 Microsoft Visual C++ Compiler for Python 2.7。但是,我仍然遇到同样的错误。
我也尝试过使用
easy_install scrapy
我得到了这个错误
error: Setup script exited with error: Microsoft Visual C++ 10.0 is required (Un
能够找到 vcvarsall.bat)。
我的注册表中还有以下内容
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\12.0\Setup\VC\ProductDir
【问题讨论】:
你用的是什么python版本? 2.7.x?另外,您能否提供更多有关错误的上下文(前后几行)?我确实收到了类似的“找不到 vcvarsall”,但这只是一个警告,scrapy 可以使用 python 2.7.9 安装。 我正在使用 Python 2.7.8 (anaconda 2.1.0) 32 位。我尝试了一个使用 Python 2.7.9 的环境,但它仍然无法正常工作。我更新了问题,在错误上方和下方添加了几行。 尝试安装:Microsoft Visual C++ Compiler for Python 2.7 我也遇到过同样的问题。然后我按照建议升级了点子。 python -m pip install --upgrade pip 我在 Python 3.4 中遇到了这个问题,我只需将pip
更新到最新版本。
【参考方案1】:
我尝试了所有建议并找到了自己的简单解决方案。
问题是在C
这样的外部环境中编写的代码需要编译器。寻找自己的VS环境,即VS 2008。
目前我的机器运行 VS 2012 并面对Unable to find vcvarsall.bat
。
我研究了要安装的代码以找到 VS 版本。这是 VS 2008。我已添加到系统变量 VS90COMNTOOLS
作为变量名,并给出了 VS120COMNTOOLS
的值。
您可以在下面找到我的分步解决方案:
-
右键单击我的电脑。
点击属性
高级系统设置
环境变量
添加新系统变量
在变量名中输入VS90COMNTOOLS
将当前版本的值输入到新变量中。
关闭所有窗口
现在打开一个新会话并pip install your-package
【讨论】:
我安装了VS140COMNTOOLS
并将%VS140COMNTOOLS%
添加到名为VS90COMNTOOLS
的变量中,它起作用了。
哇,它确实有效!我也有 VS140,并用SET VS90COMNTOOLS=%VS140COMNTOOLS%
设置它工作:D
这篇微软博文对我很有帮助...显然,不同版本的 Python 需要不同的编译器,甚至可能没有安装...blogs.msdn.microsoft.com/pythonengineering/2016/04/11/…
对我不起作用。
我安装了VS 10,12,14
,我只能在变量中看到VS120COMNTOOLS
。但错误显示我需要安装VS 14.0
。我尝试了不同的组合。有人可以帮忙吗?我错过了什么? VS120COMNTOOLS
的值为C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools` but
Tools` 文件夹在Common7
中缺失【参考方案2】:
做了很多事情后,我升级了pip
、setuptools
和virtualenv
。
python -m pip install -U pip
pip install -U setuptools
pip install -U virtualenv
我在我的虚拟环境以及全球范围内执行了步骤 1、2。
接下来,我通过pip
安装了这个包,并且成功了。
【讨论】:
在尝试了一堆其他帖子之后,这是唯一对我有用的!谢谢! 如果我知道你是谁,我会寄钱给你。 在尝试设置变量等之后。这实际上是为我解决的问题! 这也解决了我的问题,我只需要将 virtualenv 更新到最新的 pip 9.0 附带的 15.1。 pip 7.0 似乎是这里的问题。 这对我也有用。非常感谢 。如果有人在安装时遇到 cl.exe not found 或 somefile not found 错误,只需从非官方来源安装“Twisted”和“lxml”库,然后您就可以轻松地从 pip 安装 Scrapy 而不会出现错误。链接:lfd.uci.edu/~gohlke/pythonlibs/#twisted【参考方案3】:我在 python 3.4.3 中也遇到了同样的错误,我尝试使用此处和其他地方提到的解决方案,但没有成功。
Microsoft 为 Python 2.7 提供了一个编译器,但由于我使用的是 3.4.3,它并没有给我带来太多好处。
自 3.3 以来的 Python 已过渡到 2010,您可以在此处免费下载和安装 Visual C++ 2010 Express:https://www.visualstudio.com/downloads/download-visual-studio-vs#d-2010-express
这是关于 3.3 过渡到 2010 的官方博客文章:http://blog.python.org/2012/05/recent-windows-changes-in-python-33.html
因为以前的版本对 vcvarsall.bat 给出了不同的错误,所以我会使用“pip -V”仔细检查您使用的版本
C:\Users\B>pip -V
pip 6.0.8 from C:\Python34\lib\site-packages (python 3.4)
附带说明一下,我也尝试过首先使用最新版本的 VC++ (2013),但它需要安装 2010 express。
从那时起,它应该适用于使用 32 位版本的任何人,如果您使用的是 64 位版本,您将收到 ValueError: ['path'] 消息,因为 VC++ 2010 没有 64 位编译器.为此,您必须获得 Microsoft SDK 7.1。我不能超链接 64 位的指令,因为我被限制为每个帖子 2 个链接,但它在
Python PIP has issues with path for MS Visual Studio 2010 Express for 64-bit install on Windows 7
【讨论】:
我也在使用 Python 3.4。安装 Visual C++ 2010 Express 并没有解决我的问题。实际上avenet对上述答案的第二条评论已经解决了这个问题。【参考方案4】:即使我安装了Microsoft Visual C++ Compiler for Python 2.7,我也可以使用scrapy
和psycopg2
重现这个问题(两者都需要C++ 编译)。
需要注意的是,我使用的是virtualenv
。根据您的帖子,我不确定您是否也这样做。
无论如何我都尝试跳过虚拟环境的激活。然后scrapy
和psycopg2
都安装好了。
我的假设:这个 2014 C++ Python 编译器和 virtualenv 之间存在冲突。 我不知道为什么也不知道如何解决(如果有人能提出解决方法,我会很高兴)。
【讨论】:
当我在 Python 2.7 中遇到这个问题时,这个解决方案解决了我的问题。【参考方案5】:尝试安装this,这是为 Python 2.7 启用 C++ 编译器的已知解决方法。
根据我的经验,当 pip 找不到 vcvarsall.bat 编译器时,我所做的只是打开一个 Visual Studio 控制台,因为它设置路径变量以直接调用 vcvarsall.bat,然后我在此命令行上运行 pip。
【讨论】:
已经为 Python 2.7 安装了 C++ 编译器。我打开了 Visual Studio Express 2013 for Web 和 Desktop 并尝试再次安装 scrapy,结果相同。 我尝试在 Python 2.7.9 上安装 scrapy(通过pip install scrapy
),在安装 this 之后,它运行良好。我会尝试安装 Anaconda 2.1.0。
它对我来说非常有效(使用 Anaconda 2.1.0)。我建议你清理你所有的开发环境(卸载所有不是强制性的,只添加microsoft.com/en-us/download/details.aspx?id=44266)然后再试一次,它应该可以在没有 vcvarsall.bat 问题的情况下工作。
在日志中,看起来 Python 3.4 是尝试构建扩展而不是 Python 2.7 的版本,这可能是问题所在。
为了避免通过 C++ 扩展进行编译,您可以试试这个lxml extension package,它包含每个 Python 安装的所有编译内容。之后再次运行安装,它应该跳过 lxml 安装。以上是关于Python Pip 安装错误:找不到 vcvarsall.bat。尝试了所有解决方案[重复]的主要内容,如果未能解决你的问题,请参考以下文章
找不到Python pip安装模块。如何将python链接到pip位置?
找不到 Python pip 安装模块。如何将python链接到pip位置?