Python pip安装出现错误:找不到vcvarsall.bat
在带有Python 2.7的Windows 8上使用Python pip安装出现错误:找不到vcvarsall.bat,python,python-2.7,pip,zipline,Python,Python 2.7,Pip,Zipline,在带有Python 2.7的Windows 8上使用pip install zipline会出现以下错误: Downloading/unpacking six (from python-dateutil==2.1->delorean->zipline[all]) Running setup.py egg_info for package six Installing collected packages: blist, pytz, requests, python-dateut
pip install zipline
会出现以下错误:
Downloading/unpacking six (from python-dateutil==2.1->delorean->zipline[all])
Running setup.py egg_info for package six
Installing collected packages: blist, pytz, requests, python-dateutil, six
Running setup.py install for blist
building '_blist' extension
error: Unable to find vcvarsall.bat
Complete output from command C:\Python27\python.exe -c "import setuptools;__
file__='c:\\users\\ThatsMe\\appdata\\local\\temp\\pip-build-ThatsMe\\blist\\setup.py';ex
ec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" inst
all --record c:\users\ThatsMe\appdata\local\temp\pip-xvoky2-record\install-record.tx
t --single-version-externally-managed:
running install
running build
running build_py
running build_ext
building '_blist' extension
error: Unable to find vcvarsall.bat
问题:如何解决错误?运行
pip install zipline[all]
会出现相同的错误…您需要在路径中包含Visual Studio的bin dir。Pip安装正在尝试编译一些C代码 您的路径中需要有Visual Studio的bin dir。Pip安装正在尝试编译一些C代码 您可以使用ol'goodeasy\u install zipline
easy\u install
不是pip,但它的一个优点是能够下载并安装二进制软件包,这将使您无需准备好VC++即可。当然,这依赖于以下假设:二进制文件是为您的Python版本准备的
更新:
是的,Pip现在可以安装二进制文件了
有一种新的二进制Python归档格式()应该取代“鸡蛋”。
pip
已经支持控制盘。这意味着,一旦有人为您的平台构建轮子并将其上传到PyPI,您就可以使用pip
安装zipline
,而无需编译它。您可以使用ol'good轻松安装zipline
easy\u install
不是pip,但它的一个优点是能够下载并安装二进制软件包,这将使您无需准备好VC++即可。当然,这依赖于以下假设:二进制文件是为您的Python版本准备的
更新:
是的,Pip现在可以安装二进制文件了
有一种新的二进制Python归档格式()应该取代“鸡蛋”。
pip
已经支持控制盘。这意味着你可以安装<代码> ZipLIN <代码> > <代码> PIP <代码>,只要有人为你的平台建立了轮子,并将它上传到PyPI,就可以编译它。 < P>因为你的机器上没有安装C++编译器,检查下面的
-
< L> >微软下载Visual C++ 2008。不管怎么说,这是一个非常有用的页面,所以你可能应该把它添加到书签中。对于Python 3.3+使用。
安装它
- 打开Windows资源管理器(文件浏览器),搜索“vcvarsall.bat”的位置并将其剪切到剪贴板
- 从Windows开始键运行regedit。您将需要管理员权限
- 将注册表项添加到 HKEY\U LOCAL\U MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir(64位Windows)或 HKEY\U LOCAL\U MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir(32位) 如上所述
- 在Windows开始键处,键入cmd以获取命令shell。如果需要,请转到虚拟环境并运行activate.bat
- pip安装或您用来安装它的任何东西
-
< L> >微软下载Visual C++ 2008。不管怎么说,这是一个非常有用的页面,所以你可能应该把它添加到书签中。对于Python 3.3+使用。
安装它
- 打开Windows资源管理器(文件浏览器),搜索“vcvarsall.bat”的位置并将其剪切到剪贴板
- 从Windows开始键运行regedit。您将需要管理员权限
- 将注册表项添加到 HKEY\U LOCAL\U MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir(64位Windows)或 HKEY\U LOCAL\U MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir(32位) 如上所述
- 在Windows开始键处,键入cmd以获取命令shell。如果需要,请转到虚拟环境并运行activate.bat
- pip安装或您用来安装它的任何东西
- 感谢“msoliman”的提示,但是他的回答并没有为那些没有VS2010的人提供明确的解决方案
例如,我有VS2012和VS2013,但在系统注册表中没有这样的键 解决方案:
编辑文件:“[Python\u install\u loc]/Lib/distutils/msvc9compiler.py”
第224行的更改:
productdir = Reg.get_value(r"%s\Setup\VC" % vsbase,
"productdir")
致:
多亏了“msoliman”的提示,这应该是可行的,但是他的回答并没有为那些没有VS2010的人提供明确的解决方案例如,我有VS2012和VS2013,但在系统注册表中没有这样的键 解决方案:
编辑文件:“[Python\u install\u loc]/Lib/distutils/msvc9compiler.py”
第224行的更改:
productdir = Reg.get_value(r"%s\Setup\VC" % vsbase,
"productdir")
致:
这应该行得通。这里的问题是
$Python\u install\u prefix/Lib/distutils/msvc9compiler.py
中的第292行(这里使用Python 3.4.3),它说:
VERSION = get_build_version()
这只检查构建python时使用的MSVC版本。只需将这一行替换为实际的Visual Studio版本,例如MSVC2013的12.0
VERSION = 12.0
这将解决问题
更新:事实证明,有一个很好的理由为什么这个版本是硬编码的。MSVC C运行时不需要在主要版本之间兼容。因此,当您使用不同的VS版本时,可能会遇到运行时问题。因此,我建议使用VS2008(适用于Python2.6到3.2)和VS2010(适用于Python3.3和更高版本),直到这个问题解决为止
二进制兼容性将随VS 2015()和Python 3.5一起提供
针对Python2.7用户,微软发布了
git clone https://github.com/matplotlib/matplotlib
git clone https://github.com/jbmohler/matplotlib-winbuild
$ python matplotlib-winbuild\buildall.py
def find_vcvarsall(version):
return r"C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat"
def find_vcvarsall(version):
return <path>\vcvarsall.bat