我可以使用“pip install --cert”来解决这个问题吗?

我可以使用“pip install --cert”来解决这个问题吗?

试图弄清楚是否有办法避免在工作中安装软件包时对 pip 使用 --cert 标志。代理存在一些问题,尽管将文件添加到mycert.crt/usr/local/share/ca-certificates运行,但仅允许我在提供该标志时下载所需的软件包sudo update-ca-certificates

我看到的消息示例如下:

$ pip install "virtualenv>=1.10.1"
Downloading/unpacking virtualenv>=1.10.1
  Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/virtualenv/ when looking for download links for virtualenv>=1.10.1
  Could not fetch URL https://pypi.python.org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/ when looking for download links for virtualenv>=1.10.1
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://pypi.python.org/simple/virtualenv/ when looking for download links for virtualenv>=1.10.1
  Could not find any downloads that satisfy the requirement virtualenv>=1.10.1
Cleaning up...
No distributions at all found for virtualenv>=1.10.1
Storing complete log in /tmp/tmpwW5qXD

可以使用以下方法解决此问题:

pip install --cert=/usr/local/share/ca-certificates/mycert.crt

不过,我宁愿不这样做(因为我确信其他应用程序也会遇到这个问题)。

我正在运行 Linux Mint 15(尽管我之前在 Ubuntu 12.04 上遇到过非常类似的问题),pip 版本 1.4.1。

答案1

$HOME/.pip/pip.conf您可以通过 Windows中的 pip 配置文件进行设置%APPDATA%\pip\pip.ini

[global]
cert = /usr/local/share/ca-certificate/mycert.crt

此文件允许您设置 pip 使用的所有标志。完整文档位于https://pip.pypa.io/en/latest/user_guide/#configuration

答案2

对我来说,配置文件解决方法都不起作用。我正在使用pip 1.5.4Ubuntu 14.04

最终对我有用的是首先在系统上安装证书(对于我在 ubuntu 上来说)

sudo cp ~/my_cert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

先前自动更新了捆绑文件(检查底部,/etc/ssl/certs/ca-certificates.crt您现在应该会看到与中相同的证书my_cert.crt

现在在 中使用该路径PIP_CERT。并将其添加到我的.bashrc

echo export PIP_CERT=/etc/ssl/certs/ca-certificates.crt >> ~/.bashrc

免责声明:我已经在 SO 中发布了这个答案(与上面的‘最终重复的链接’中的答案相同,但一开始我没有找到其他(最终重复的答案)...所以如果像我这样的人先到这里,那么这可能会有所帮助。

我可能违反了某些规则,两次发布相同的答案,一次在 SO,另一次在超级用户中。如果是这样,我很抱歉。

答案3

这对我来说很有用,而不需要知道配置文件位于何处:

python -m pip config set global.cert C:\\Path\\cert.crt

我相信您需要 pip 版本 10+,您可以通过以下方式找到它:

 python -m pip --version

然后,config set 命令的输出会输出配置文件的名称,以方便您使用

答案4

留在这里作为给自己的提醒,并希望对任何使用 Linux 的人都有帮助。

这些是 pip 在 Linux 上按以下顺序搜索 conf 文件的目录:

/etc/xdg/pip/pip.conf
/etc/pip.conf
$HOME/.pip/pip.conf
$HOME/.config/pip/pip.conf
$VIRTUALENV/pip.conf

相关内容