Windows上的python pip - 命令' cl.exe'失败

时间:2017-01-18 16:24:12

标签: python windows pip

我尝试使用pip install spacy安装spaCy但我收到以下错误..

enter image description here

我安装了VS 2015,并且我安装了以下Python ..

3.5.2 |Anaconda 2.5.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]

我尝试了以下SO解决方案无济于事。

以及其他各种。这不是这个特定库的一个独特问题,但更常见的是我尝试安装需要C在Windows上构建的Python库。

9 个答案:

答案 0 :(得分:32)

您的cl.exe可能需要PATH

PATH是一个环境变量,它告诉Windows在您给它命名时在哪里可以找到可执行文件。默认情况下,它包含C:\Windows

等位置

首先,如果尚未安装,请从Visual Studio安装程序安装 Visual C ++生成工具。然后执行以下操作之一:

  1. 使用 Visual C ++命令提示符。您可以在Visual Studio文件夹下的“开始”菜单中找到它。这会自动设置PATH
  2. 手动将cl.exe文件夹添加到PATH

    您要查找的文件夹通常为(visual studio folder)\VC\bin。可以找到说明in this answer。在此之后,您可以使用任何命令提示符中的cl.exe请注意,您必须在此之后重新启动命令提示符才能更新其中的PATH

答案 1 :(得分:16)

这是最简单的解决方案。 对于那些不知道如何做的人:

  1. 安装C ++编译器 http://landinghub.visualstudio.com/visual-cpp-build-tools

  2. 转到安装文件夹(在我的情况下): C:\ Program Files(x86)\ Microsoft Visual C ++构建工具

  3. 打开Visual C ++ 2015 x86 x64交叉构建工具命令提示符

  4. 输入:pip install package_name

答案 2 :(得分:8)

在我的情况下,我需要从Visual Studio安装更多工具(我使用VS 2017社区和Python 3.6.4)。我安装了这些工具(请参阅安装程序屏幕截图here):

  1. 使用C ++开发桌面:我包含了所有默认项目和下一个项目:

    • Windows XP对C ++的支持
    • 支持C ++ / CLI
    • VC ++ 2015.3 v140工具集
  2. 使用C ++进行Linux开发

  3. 然后我将 Windows PowerShell 打开为管理员权限(右键单击打开)并移动Visual Studio安装文件夹并找到该路径:

    cd [Visual Studio Path]\VC\Auxiliary\Build
    

    然后我执行了这个文件:

    .\vcvars32.bat
    

    之后我正常使用pip,例如,我想安装 Mayavi

    pip install mayavi
    

    我希望它也有助于某人。

答案 3 :(得分:2)

刚刚补充了Kunal Mathur的回答以及对@mockash的回答,因为由于缺乏声誉我无法发表评论。

键入之前:pip install package_name,需要将目录更改为pip.exe所在的文件夹。例如:

  

打开Visual C ++ 2015 x86 x64交叉构建工具命令提示符 - >   更改目录cd   C:\用户\测试\应用程序数据\本地\程序\ Python的\ Python36-32 \脚本 - >类型:   pip install package_name

但奇怪的是我只能通过'Visual C++ 2015 x64 x86' not 'x86 x64'

成功安装

答案 4 :(得分:2)

请参阅此链接:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#cytoolz

为你的python版本下载正确的whl软件包(如果你不知道你有什么版本的python,只需要翻译午餐)

使用pip来安装软件包,假设文件在downloads文件夹中并且你有python 3.6 32位:

python -m pip install C:\ Users \%USER%\ Downloads \ cytoolz-0.9.0.1-cp36-cp36m-win32.whl

这对于此软件包无效,但对于任何无法在您自己的Windows安装下编译的软件包都无效。

答案 5 :(得分:1)

我在Visual Studio 2017中遇到了同样的问题。

您可以在以下位置找到cl.exe C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ Hostx86 \ x86。

只需将环境变量设置为可访问的地址,然后在anaconda中运行命令,它对我有用。

答案 6 :(得分:0)

我多次遇到这个问题。有import UIKit import PlaygroundSupport class FilterViewController: UIViewController { var filterView: UIView! var scrollView: UIScrollView! var containerView: UIView! override func loadView() { filterView = UIView() view = filterView view.backgroundColor = #colorLiteral(red: 0.909803926944733, green: 0.47843137383461, blue: 0.643137276172638, alpha: 1.0) scrollView = UIScrollView() scrollView.backgroundColor = #colorLiteral(red: 0.474509805440903, green: 0.839215695858002, blue: 0.976470589637756, alpha: 1.0) view.addSubview(scrollView) scrollView.translatesAutoresizingMaskIntoConstraints = false scrollView.topAnchor.constraint(equalTo: view.topAnchor, constant: 40).isActive = true scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true scrollView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true scrollView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.25).isActive = true scrollView.isScrollEnabled = true containerView = UIView() containerView.backgroundColor = #colorLiteral(red: 0.176470592617989, green: 0.498039215803146, blue: 0.756862759590149, alpha: 1.0) scrollView.addSubview(containerView) containerView.translatesAutoresizingMaskIntoConstraints = false // This is key: connect all four edges of the containerView to // to the edges of the scrollView containerView.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true containerView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true containerView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true containerView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true // Making containerView and scrollView the same height means the // content will not scroll vertically containerView.heightAnchor.constraint(equalTo: scrollView.heightAnchor).isActive = true } class Buttons { let button = UIButton() init(titleText: String) { button.backgroundColor = #colorLiteral(red: 0.976470589637756, green: 0.850980401039124, blue: 0.549019634723663, alpha: 1.0) button.setTitle(titleText, for: .normal) } } override func viewDidLoad() { super.viewDidLoad() let b1 = Buttons(titleText: "one") let b2 = Buttons(titleText: "two") let b3 = Buttons(titleText: "three") let b4 = Buttons(titleText: "four") let b5 = Buttons(titleText: "five") let buttonArray = [b1, b2, b3, b4, b5] var startPoint = containerView.leadingAnchor for btn in buttonArray { let theBtn = btn.button containerView.addSubview(theBtn) theBtn.translatesAutoresizingMaskIntoConstraints = false theBtn.leadingAnchor.constraint(equalTo: startPoint, constant: 20).isActive = true theBtn.topAnchor.constraint(equalTo: containerView.topAnchor).isActive = true theBtn.bottomAnchor.constraint(equalTo: containerView.bottomAnchor).isActive = true theBtn.widthAnchor.constraint(equalTo: theBtn.heightAnchor).isActive = true startPoint = theBtn.trailingAnchor } // Complete the chain of constraints containerView.trailingAnchor.constraint(equalTo: startPoint, constant: 20).isActive = true } } let filterViewController = FilterViewController() PlaygroundPage.current.liveView = filterViewController ,但是由于某些奇怪的原因,*, *::before, *::after { -moz-box-sizing: border-box; box-sizing: border-box; } 找不到它,即使我们从存在cl.exe的{​​{1}}文件夹中运行命令。尝试使用conda安装程序,对我来说效果很好。

如下图所示,pip无法找到bin。然后我尝试使用conda

安装

image 1

令我惊讶的是,一旦您安装了正确版本的vs cpp构建工具,即正确目录中的v14.0,它就可以正确安装。

image 2

答案 7 :(得分:0)

  1. 安装Microsoft visual c ++ 14.0生成工具。(Windows 7)
  2. 使用conda创建虚拟环境。
  3. 激活环境并使用conda安装必要的软件包。

例如: conda install -c conda-forge spacy

答案 8 :(得分:0)

如果您希望自动化非常简单且令人愉快,请查看Chocolatey.org/install,您基本上可以复制并粘贴这些命令,然后根据所需的VC ++版本对其进行调整。

此命令取自https://chocolatey.org/install

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

一旦安装了巧克力,就可以关闭然后重新打开Powershell终端或运行以下命令:

Import-Module "$env:ChocolateyInstall\helpers\chocolateyInstaller.psm1" ; Update-SessionEnvironment

现在,您可以使用Chocolatey安装Python(默认为3.x最新版本)。

choco install python

# This next command installs the latest VisualStudio installer that lets you get specific versions of the build
# Microsoft has replaced the 2015 and 2017 installer links with this one, and we can still use it to install the 2015 and 2017 components

choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Component.VC.140 --passive --locale en-US --add Microsoft.VisualStudio.Component.Windows10SDK.$($PSVersionTable.BuildVersion.Build) --no-includeRecommended" -y --timeout 0

# Usually need the "unlimited" timeout aka "0" because Visual Studio Installer takes forever

# Tool portion
# Microsoft.VisualStudio.Product.BuildTools
# Component portion(s)
# Microsoft.VisualStudio.Component.VC.140
# Win10SDK needs to match your current Win10 build version
# $($PSVersionTable.BuildVersion.Build)
# Microsoft.VisualStudio.Component.Windows10SDK.$($PSVersionTable.BuildVersion.Build)

# Because VS2019 Build Tools are dumb, need to manually link a couple files between the SDK and the VC++ dirs
# You may need to tweak the version here, but it has been updated to be as dynamic as possible 
# Use an elevated Powershell or elevated cmd prompt (if using cmd.exe just use the bits after /c)
cmd /c mklink "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\rc.exe" "C:\Program Files (x86)\Windows Kits\10\bin\$($PSVersionTable.BuildVersion.Major).$($PSVersionTable.BuildVersion.Minor).$($PSVersionTable.BuildVersion.Build).0\x64\rc.exe"

cmd /c mklink "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\rcdll.dll" "C:\Program Files (x86)\Windows Kits\10\bin\$($PSVersionTable.BuildVersion.Major).$($PSVersionTable.BuildVersion.Minor).$($PSVersionTable.BuildVersion.Build).0\x64\rcdll.dll"

一旦安装了此软件,则应重新启动。有时候我不需要重启就可以正常工作,但是如果您先重启,则pip install命令将最有效。

现在您可以pip install pipenvpip install complex-package了,应该可以了。