试图弄清楚是否有办法避免在工作中安装软件包时对 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.4在Ubuntu 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