【问题标题】:pip install error: Microsoft Visual C++ 10.0 is requiredpip 安装错误:需要 Microsoft Visual C++ 10.0
【发布时间】:2019-12-26 03:20:20
【问题描述】:

我有 Python 3.4,在 Windows 10 x64 上运行,尝试通过 pip:pip install pylint 安装 pylint。

这样做时,我收到以下错误:Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279

但是我已经有了:

  • Microsoft Visual C++ 2010 x64、Microsoft Visual C++ x86 均可再发行
  • Microsoft Visual C++ 2013 x64、Microsoft Visual C++ x86 均可再发行
  • Microsoft Visual C++ 2015 - 2019 x64,可再发行版
  • Microsoft Visual C++ 2017 x64、Microsoft Visual C++ 2017 x86 均可再发行

我看到了一些其他帖子,其中包含我尝试过但似乎对我没有帮助的可能解决方案 -

  • 更新setuptools和virtualenv

  • 下载SDK报错

  • 添加VS110COMNTOOLS, VS120COMNTOOLS, VS140COMNTOOLS环境变量

当然,每次尝试后我都重新启动了我的电脑。

我还能尝试解决什么问题?

是否可以在没有 pip 的情况下安装 pylint?

【问题讨论】:

  • 这需要从 Visual Studio 2010 x64 命令提示符运行吗?我知道几个c++ buildsystem 生成器这样做可以修复编译器的检测。
  • @drescherjm 你什么意思?我尝试从 PyCharm 运行它
  • @drescherjm 不使用Visual Studio 2010 x64命令提示符运行PyCharm就不能解决吗?

标签: python c++ visual-studio pip


【解决方案1】:

你没有任何 Visual C++,你只有 Redistributable 包。他们安装用于运行用 VC 编写的应用程序的运行时库。但是你需要 Visual C++ 编译器!安装Visual Studio 2010 Express。

另见https://stackoverflow.com/search?q=%5Bpip%5D+%22Microsoft+Visual+C%2B%2B+10.0+is+required%22

【讨论】:

  • 旧版本的 Visual Studio 在 Microsoft 的网站上不再可用。于是我下载了2019版,重启了电脑,问题依旧
  • 我在链接页面上看到了 Visual Studio 2010 Express。无法下载?
  • 我找不到 2010 Express。现在下载 2017 express,在链接页面上找到。 2017年能解决还是一定是2010年?
  • 尝试下载 .NET Framework 4 时,安装程​​序显示我已经安装了 .NET 4。但是,当尝试为 Windows 7 和 .NET 框架 4 安装 Microsoft Windows SDK 时,我收到一个错误,即找不到 .NET 框架 4
【解决方案2】:

Python 3.4

根据[Python]: PEP 429 -- Python 3.4 Release Schedule(强调是我的):

Python 3.4 现已结束生命周期并已停用。将不再发布。

最后一个版本 (3.4.10) 于 2019/03/18 发布。

因此,您应该远离它(我推荐(当前)LTS 版本:3.7)。这并不能神奇地解决所有可能的问题,但作为一个较新的版本,它需要更新的构建工具 (VStudio),这些工具更容易找到,并且安装和运行正确的可能性更高。

注意事项:

2。 皮林特

[PyPI]: Pylint完全用 Python 编写(我检查了源代码),所以它不需要 C(++) em> 编译器。 pylint-2.3.1-py3-none-any.whl 文件(可供下​​载)的存在也支持这一点。
它的一些依赖项(wrapt、typed-ast:没有为 预构建的二进制文件Win 上的 Python 3.4 - 考虑到上一个项目符号是有道理的)需要它。

根据[PyPA]: pip install - Options(pip install -h):

--no-deps

    不要安装软件包依赖项。

现在,我不知道您的 Pylint 用例:您是否正在使用需要上述依赖项的部分,但如果您不使用,只需传递 -- no-deps 参数。

[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057581571]> sopr.bat
*** Set shorter prompt to better fit when pasted in StackOverflow (or other) pages ***

[prompt]> "e:\Work\Dev\VEnvs\py_064_03.04.04_test0\Scripts\python.exe" -c "import sys;print(sys.version)"
3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]

[prompt]> "e:\Work\Dev\VEnvs\py_064_03.04.04_test0\Scripts\python.exe" -m pip freeze

[prompt]> "e:\Work\Dev\VEnvs\py_064_03.04.04_test0\Scripts\python.exe" -m pip install --no-deps pylint
Collecting pylint
  Using cached https://files.pythonhosted.org/packages/60/c2/b3f73f4ac008bef6e75bca4992f3963b3f85942e0277237721ef1c151f0d/pylint-2.3.1-py3-none-any.whl
Installing collected packages: pylint
Successfully installed pylint-2.3.1
You are using pip version 18.1, however version 19.1.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

[prompt]> "e:\Work\Dev\VEnvs\py_064_03.04.04_test0\Scripts\python.exe" -m pip freeze
pylint==2.3.1

[prompt]>
[prompt]> :: Pylint dummy usage example - just import it
[prompt]> "e:\Work\Dev\VEnvs\py_064_03.04.04_test0\Scripts\python.exe" -c "import pylint;print(pylint)"
<module 'pylint' from 'e:\\Work\\Dev\\VEnvs\\py_064_03.04.04_test0\\lib\\site-packages\\pylint\\__init__.py'>

正如所见,该软件包已安装,并且它可用。

注意事项:

  • typed-ast 有(官方)预构建的 Python 3.5(和更新的)二进制文件,但 没有wrapt,所以 Python 升级仍然需要构建它(假设需要它)
  • 您总是可以求助于非官方的预构建二进制文件。 [UCI.LFD]: Unofficial Windows Binaries for Python Extension Packages 是最全面的存储库(据我所知),包含为 Python 3.4 构建的 wrapt(但不是typed-ast 一个 :) )

3。否则...

Python 3.4 版本是使用 VStudio 2010 (10.0) 构建的(在 Win 上)。由于它是用 C 编写的,因此需要一个 C 编译器。
更多详情请访问 [Python.Wiki]: WindowsCompilers。

每个包都包含用 C(++) 编写的部分(并且需要在 pip install 时间从源代码构建 - 这意味着公共存储库中没有预构建的二进制文件),还有需要编译器(编译器版本必须与构建 Python 的版本相匹配)。

上面的 URL 列出了需要安装的 4 个项目:

  • 适用于 Windows SDK 7.1 的 Microsoft Visual C++ 2010 Service Pack 1 编译器更新
  • 适用于 Windows 7 和 .NET Framework 4 的 Microsoft Windows SDK
  • 另外 2 个是这 2 个的依赖项(我倾向于认为会自动安装)

我没有(必须)尝试这一步,因为我已经安装了 VStudio 2010。附带说明一下,我安装了 7 个 VStudio 版本(带有相应的 SDK),并且我还安装了 30+ Python 个实例(已安装,VEnvs,由我自定义构建,由其他 3rd 方软件安装,...)在我的机器上。

一旦您安装了(上述)构建工具(并且 %VS*% 环境变量指向所需的 VStudio 版本 - 您必须手动执行此操作有多个版本),您将能够安装大多数包含 C(++) 代码的 Python 包。
但可能会有一些例外。这是一个让我有些头疼的例子:[SO]: Installing pygraphviz on Windows 10 64-bit, Python 3.6 - (@CristiFati's answer)(检查一下 - 以及它引用的 URL,那里有很多有用的信息)。

我注意到您在安装 VStudio 2010 时遇到了一些问题。有重蹈覆辙的风险,切换到较新的 Python 版本将使您当前的一些问题消失,因为它需要较新的构建工具,安装失败的可能性较小。
不过,其他所有内容仍然适用。

更新#0

关于问题中的最后一个查询:

可以在没有 pip 的情况下安装 Pylint,例如(几乎)执行 pip 所做的操作,但手动操作。但是,就我而言,这将是一个(蹩脚的)解决方法(gainarie)。总之,步骤如下:

  1. 下载并解压.whl(来自#2.部分)
  2. 复制(内部)pylint dir,在 Python 的 site-packages dir 下

但同样,这里所做的一切也是在 #2. 中正确完成的,所以这真的毫无意义。

【讨论】:

【解决方案3】:

也许你可以尝试从https://www.lfd.uci.edu/~gohlke/pythonlibs/安装pylint

【讨论】:

    【解决方案4】:

    您可以尝试安装 Visual Studio Code 并从那里打开您的项目。根据我的经验,Visual Studio Code 会在发现它丢失时为您安装 pylint(和其他丢失的库)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2016-12-21
      • 2021-02-19
      相关资源
      最近更新 更多