2017-02-09 190 views
16

当在Mac OSX上10.9.4的virtualenv使用pip install Twisted,我得到这样的结果:皮普安装扭错误1

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) 
+0

尝试使用'sudo' – user3543300

+5

不要使用'sudo'安装到一个virtualenv中。 –

+0

[SSL:CERTIFICATE_VERIFY_FAILED]我通常通过从源代码下载和安装来解决此问题。但你有没有尝试:'Xcode选择 - 安装扭曲',因为他们提到是Mac需要? https://twistedmatrix.com/trac/wiki/Downloads – Matt

回答

0

尝试升级PIP封装。

sudo pip install --upgrade pip 

和扭曲有两个必需的依赖关系:

安装C编译器 由于从源代码安装扭涉及编译C代码,在OS X或Windows,你需要之前安装C编译器你可以安装Twisted。

安装zope.interface 当从源代码安装,才可以使用双绞线,你还需要安装zope.interface,您可以从扭曲的主页下载。

而且随着你的步骤安装,或遵循这个link

+0

请勿使用'sudo'在虚拟环境中升级pip。 –

3

您报告的错误是不完整的。在pip输出中,上面几乎肯定会有更多细节。这将有助于编辑它们到你的问题。

的类似的问题调查:

表明:

  • 你缺少setuptools。在virtualenv里面(你确实激活了你的virtualenv,对吗?)这似乎不合理。
  • 你缺少C工具链的一部分 - 一个编译器,一些必要的头文件等。扭曲包含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在验证证书时也有问题,那么您知道系统范围内有问题。如果不是,我们可以缩小到一个点或Python的问题。

+0

已经建立了工具,已经下载了xcode,我已经运行在python 2.7和3.6上。 –

+0

已尝试openssl s_client -showcerts -connect pypi.python.org:443,请在列表中找到更新。 –

+0

呵呵。我不明白“验证错误:num = 20:无法获得本地颁发者证书”(应验证失败),然后是“验证返回码:0(ok)”(表示验证成功) - 除非它有与Apple专门定制的OpenSSL分发有关。 :/我认为这是一个OS X/OpenSSL问题,所以我编辑了标签,希望能够绘制出更多线索的人。 –

7

我在全新的virtualenv中使用全新安装的Python3.6.1,在Mac OSX 10.11.6上遇到同样的问题。在我的情况下,我安装了扭曲依赖关系增量的旧版本,这阻止了安装。

pip install --upgrade incremental 
pip install Twisted 

注I:我是从一个要求安装包的整个阵列的文件,其中指定了相同增量版本。我真的很想知道为什么升级的升级有帮助,而且不知道究竟是哪里出了问题。如果有人可以澄清,那会很好。

注意II:在新安装时,似乎还需要在Twisted之前安装增量([使用CentOS7时经验丰富]]。

+0

在我的情况下,'--no-cache-dir'没有必要 – surfer190

+1

谢谢你让我们知道。我从我的答案中删除了'--no-cache-dir'部分。 – fabianegli

+0

@fabianegli这帮了我很多忙。谢谢 – Taylor