Python Pip安装错误:无法找到vcvarsall.bat。尝试了所有解决方案

时间:2014-12-27 18:43:53

标签: python windows visual-studio python-2.7 pip

我尝试使用

安装32位的Scrapy for Python 2.7.8(anaconda 2.1.0)
pip 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)进行了更新,它应该自动检测用于Python 2.7的Microsoft Visual C ++编译器。但是,我仍然遇到同样的错误。


我也尝试过使用

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

5 个答案:

答案 0 :(得分:51)

在做了很多事情之后,我升级了pipsetuptoolsvirtualenv

  1. python -m pip install -U pip
  2. pip install -U setuptools
  3. pip install -U virtualenv
  4. 我在虚拟环境和全局中执行了第1,2步。 接下来,我通过pip安装了软件包,但它运行良好。

答案 1 :(得分:51)

我已经尝试了所有建议并找到了我自己的简单解决方案。

问题是在C等外部环境中编写的代码需要编译器。寻找自己的VS环境,即VS 2008。

目前,我的机器运行VS 2012并面向Unable to find vcvarsall.bat。 我研究了我想安装的代码以找到VS版本。这是VS 2008.我已将系统变量VS90COMNTOOLS添加为变量名称,并赋予VS120COMNTOOLS的值。

您可以在下面找到我的分步解决方案:

  1. 右键单击“我的电脑”。
  2. 单击“属性”
  3. 高级系统设置
  4. 环境变量
  5. 添加新系统变量
  6. 将VS90COMNTOOLS输入变量名称
  7. 在新变量中输入当前版本的值。
  8. 关闭所有窗口
  9. 现在打开一个新会话并pip install your-package

答案 2 :(得分:30)

尝试安装this,这是为Python 2.7启用C ++编译器的已知解决方法。

根据我的经验,当pip找不到vcvarsall.bat编译器时,我所做的只是打开一个Visual Studio控制台,因为它设置路径变量直接调用vcvarsall.bat然后我在这个命令行上运行pip。

答案 3 :(得分: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

以下是官方博客文章,内容是关于过渡到2010年的3.3: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不会#39 ;有一个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

答案 4 :(得分:1)

我也可以使用scrapypsycopg2(都需要C ++编译)重现此问题,即使我安装了Microsoft Visual C++ Compiler for Python 2.7

必须注意的是,我使用virtualenv。从你的帖子我不确定你是否也这样做。

无论如何,我试图跳过虚拟环境的激活。然后,scrapypsycopg2都安装得很好。

我的假设:这个用于Python的2014 C ++编译器和virtualenv之间存在冲突。 我不知道为什么以及如何解决它(如果有人能提出解决方法,我会很高兴。)