Pip 安装扭曲错误 1
Posted
技术标签:
【中文标题】Pip 安装扭曲错误 1【英文标题】:Pip Install Twisted Error 1 【发布时间】:2017-06-27 01:17:00 【问题描述】:在 Mac osx 10.9.4 上的 virtualenv 中使用 pip install Twisted
时,我得到以下结果:
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/9r/3b500gbs3093ms87mqqbckr80000gn/T/pip-build-doynftp7/twisted/
我不确定如何解决。我使用了 easy_install,但遇到 SSL 验证问题。有人有类似的问题吗?其余的错误消息如下。
Collecting twisted
Using cached Twisted-16.6.0.tar.bz2
Complete output from command python setup.py egg_info:
Download error on https://pypi.python.org/simple/incremental/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
Couldn't find index page for 'incremental' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
No local packages or working download links found for incremental>=16.10.1
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/9r/3b500gbs3093ms87mqqbckr80000gn/T/pip-build-lqvxc68n/twisted/setup.py", line 21, in <module>
setuptools.setup(**_setup["getSetupArgs"]())
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/setuptools/dist.py", line 317, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/setuptools/dist.py", line 372, in fetch_build_eggs
replace_conflicting=True,
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/pkg_resources/__init__.py", line 851, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1123, in best_match
return self.obtain(req, installer)
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1135, in obtain
return installer(requirement)
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/setuptools/dist.py", line 440, in fetch_build_egg
return cmd.easy_install(req)
File "/Users/Complex-Cauchy/1/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 668, in easy_install
raise DistutilsError(msg)
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('incremental>=16.10.1')
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/9r/3b500gbs3093ms87mqqbckr80000gn/T/pip-build-lqvxc68n/twisted/
运行 openssl s_client -showcerts -connect pypi.python.org:443
返回以下内容:
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro/O=Python Software Foundation/CN=www.python.org
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
-----BEGIN CERTIFICATE-----
MIIIWjCCB0KgAwIBAgIQCXCW7BLw16II/CMOsOFe/jANBgkqhkiG9w0BAQsFADB1
..
-----END CERTIFICATE-----
1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
-----BEGIN CERTIFICATE-----
MIIEtjCCA56gAwIBAgIQDHmpRLCMEZUgkmFf4msdgzANBgkqhkiG9w0BAQsFADBs
....
-----END CERTIFICATE-----
Server certificate
subject=/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro/O=Python Software Foundation/CN=www.python.org
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
---
No client certificate CA names sent
---
SSL handshake has read 3524 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES128-SHA
Session-ID: BC7695FF86D2B82B20468A13E3F3E13AE23776B500E64665305EEBAF49BB54D1
Session-ID-ctx:
Master-Key:8D25B34237A3C74E90317D87BA74A2AAF0E8C424FB2ADE3D72E5F234D5E043C4527641290B928B3A22 1BE7D44116CFB1
Key-Arg : None
Start Time: 1487035770
Timeout : 300 (sec)
Verify return code: 0 (ok)
【问题讨论】:
不要使用sudo
安装到虚拟环境中。
[SSL: CERTIFICATE_VERIFY_FAILED] 我通常通过从源代码下载和安装来解决这个问题。但是您是否尝试过:xcode-select --install Twisted
正如他们提到的 Mac 上需要的那样? twistedmatrix.com/trac/wiki/Downloads
你设法让它工作了吗?如果是这样怎么办?如果提供的答案都不适合您,请考虑编写您自己的答案。见***.com/help/self-answer
问题是否仍然存在?如果不是,请接受解决您问题的答案或使用您自己的解决方案创建答案并接受。
【参考方案1】:
我在全新安装 Python3.6.1 的新 virtualenv 中的 Mac OSX 10.11.6 上遇到了同样的问题。就我而言,我安装了旧版本的 Twisted 依赖项incremental,这阻止了安装。
pip install --upgrade incremental
pip install Twisted
注意 I: 我正在从指定了相同增量 版本的需求文件中安装一整套软件包。我真的很想知道为什么增量升级有帮助并且不知道实际出了什么问题。如果有人能澄清一下,那就太好了。
注意二:在全新安装时,在 Twisted 之前安装增量似乎也是必要的[在使用 CentOS7 时有经验]。
注意三:这个问题已经传达给了令人惊叹的 Twisted 社区,一旦 Twisted ticket #9457 实施并在发布中这个问题和我的回答应该会过时。
【讨论】:
在我的情况下,--no-cache-dir
不是必需的
感谢您告知我们。我从答案中删除了--no-cache-dir
部分。
看来增量总是需要在Twisted之前安装。
在 Mac 上帮助了我【参考方案2】:
您报告的错误不完整。在pip
输出中几乎肯定有更多细节。如果将它们编辑到您的问题中会有所帮助。
类似问题的调查:
Python pip install gives "Command "python setup.py egg_info" failed with error code 1" Can't install via pip because of egg_info error Python pip install fails: invalid command egg_info https://github.com/donnemartin/gitsome/issues/4建议:
您缺少设置工具。在 virtualenv 中(您确实激活了您的 virtualenv,对吗?)这似乎不可信。 您缺少 C 工具链的一部分 - 编译器、一些必要的头文件等。Twisted 包含 C 扩展,因此这似乎是可能的。你有 C 工具链吗? 您使用的 Python 版本不兼容。您使用的是哪个版本的 Python?但您包含的其他证书验证失败错误表明它不是由任何这些引起的。相反,无法下载依赖项,因为 pip 无法与其下载依赖项所需的 PyPI 服务器进行 TLS 握手。
这可能是由许多不同的原因造成的。你系统的浏览器可以加载https://pypi.python.org/
吗?如果不是,则可能是系统范围内出现问题:您的证书颁发机构证书可能已过时,或者可能发生了中间人攻击。
openssl s_client
有时可用于调试此类问题。试试:
openssl s_client -showcerts -connect pypi.python.org:443
这可能会为您提供有关 TLS 层正在发生的事情的更多详细信息。如果openssl s_client
也无法验证证书,您就知道系统范围内有问题。如果没有,我们可以将其缩小为 pip 或 Python 问题。
【讨论】:
已设置工具,已下载 xcode,我已在 python 2.7 和 3.6 上运行过。 已经尝试过 openssl s_client -showcerts -connect pypi.python.org:443,请在列表中找到更新。 嗯。我不明白“验证错误:num = 20:无法获取本地颁发者证书”(应该验证失败),然后是“验证返回码:0(ok)”(表示验证成功) - 除非它有与 Apple 专门定制的 OpenSSL 分发有关。 :/ 我认为这是一个 OS X / OpenSSL 问题,所以我编辑了这些标签,希望能找到有更多线索的人。 您也可以尝试pip install --verbose --verbose --verbose ...
并检查/包含日志,它可能包含更多信息。【参考方案3】:
FWIW 我在尝试安装 twisted 时遇到了同样的虚假错误:
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('incremental>=16.10.1')
就我而言,我不小心安装了一个古老的 setuptools,它搞砸了 pip
。它来自 zfec 1.4.22 tarball 的 python setup.py install
。
我通过删除 setuptools (rm -rf /usr/local/lib/python2.7/dist-packages/setuptools-0*
) 解决了这个问题。这允许pip install twisted
工作,并允许我指定一个版本(twisted==18.9.0
)。在某些情况下,旧的 setuptools 还会导致安装最新的 twisted 19。
【讨论】:
【参考方案4】:尝试升级 pip 包。
sudo pip install --upgrade pip
Twisted 有两个必需的依赖项:
安装 C 编译器 由于从源代码安装 Twisted 涉及编译 C 代码,因此在 OS X 或 Windows 上,您需要先安装 C 编译器,然后才能安装 Twisted。
安装 zope.interface 从源代码安装时,在使用 Twisted 之前,您还需要安装 zope.interface,您可以从 Twisted 主页下载。
并按照您的步骤安装它或按照此link
【讨论】:
不要使用sudo
在virtualenv中升级pip。【参考方案5】:
我在 MacBook 上安装 Twisted 时遇到了类似的问题,在尝试了许多不同的方法后,我使用 conda 成功安装了 Twisted。
您可以尝试使用 Anaconda 或 miniconda。
https://conda.io/docs/download.html
https://***.com/a/20994790/1294704
【讨论】:
以上是关于Pip 安装扭曲错误 1的主要内容,如果未能解决你的问题,请参考以下文章