Python PIP安装错误:无法findvcvarsall.bat。 试过所有的解决scheme

我试图安装Scrapy for Python 2.7.8(anaconda 2.1.0)32位使用

pip install scrapy 

我得到这个错误

  error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat). 

我已经遵循了这些stackoverstream程问题中find的解决scheme。 没有工作。

Microsoft Visual C ++编译器for Python 2.7

找不到vcvarsall.bat文件

错误:无法findvcvarsall.bat

在windows7 64bit上运行“pip install numpy”时出现“error:Unable to find vcvarsall.bat”

pip安装给出错误:无法findvcvarsall.bat

如何将easy_install指向vcvarsall.bat?

pip安装MySQL-python返回无法findvcvarsall.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的Visual C ++编译器包,它们都有vcvarsall.bat文件。


我有一个名为“VS120COMNTOOLS”的系统variables,它的path设置为

 C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\ 

我也为我的环境variables添加了两个path。 我也试过只加一个,然后再加另一个。 我的path看起来像这样

 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 ++编译器的Python 2.7。 不过,我仍然得到相同的错误。


我也尝试过使用

 easy_install scrapy 

我得到这个错误

 error: Setup script exited with error: Microsoft Visual C++ 10.0 is required (Un 

能够findvcvarsall.bat)。


我的registry中也有以下内容

 HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\12.0\Setup\VC\ProductDir 

我已经尝试了所有build议,并find了我自己的简单解

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

目前我的机器运行VS 2012,并面临Unable to find vcvarsall.bat 。 我研究了我想要安装的代码来findVS版本。 这是VS 2008。我已经添加到系统variablesVS90COMNTOOLS作为variables名称,并给了VS120COMNTOOLS的价值。

您可以在下面find我的一步一步的解决scheme:

  1. 右键单击我的电脑。
  2. 点击属性
  3. 高级系统设置
  4. 环境variables
  5. 添加新的系统variables
  6. inputVS90COMNTOOLS到variables名称
  7. 将当前版本的值input到新variables中。
  8. closures所有窗口

现在打开一个新的会话,并pip install your-package

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

  1. python -m pip install -U pip
  2. pip install -U setuptools
  3. pip install -U virtualenv

我在我的虚拟环境以及全球范围内执行了步骤1和2。 接下来,我通过pip安装了包,它工作。

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

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

我也得到了Python 3.4.3同样的错误,我试着用这里和其他地方提到的解决scheme没有成功。

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位的指令,因为我被限制为每个post2个链接,但它的

对于Windows 7上的64位安装,Python PIP有MS Visual Studio 2010 Express的path问题

在这里我也可以用scrapypsycopg2来重现这个问题(都需要C ++编译),即使我已经安装了Microsoft Visual C ++编译器for Python 2.7 。

必须指出,我使用virtualenv 。 从你的文章,我不知道你是否也这样做。

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

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