我正在尝试使用 pip 安装几个软件包。当我使用 sudo 执行此操作时,会发生此错误:“无法获取索引基础 URL https://pypi.python.org/simple/ ”。当我在没有 sudo 的情况下执行命令时,包下载成功,但我没有足够的权限。这种不同行为的原因可能是什么?我坐在代理后面。
6 回答
也许尝试sudo -E
:
-E The -E (preserve environment) option indicates to the secu‐
rity policy that the user wishes to preserve their existing
environment variables. The security policy may return an
error if the -E option is specified and the user does not
have permission to preserve the environment.
假设您的代理设置是在您的正常用户环境中设置的,而不是您在运行时获得的设置sudo
。
我在尝试使用时遇到了这个问题pip==1.5.4
这是与 PIP 和 Python 的 PYPI 信任 SSL 证书相关的问题。如果您查看 Mac OS X 中的 PIP 日志:/Users/username/.pip/pip.log,它将为您提供更多详细信息。
经过数小时尝试不同的东西后,我让 PIP 恢复并运行的解决方法是在 Python 中进入我的site-packages,无论它是在virtualenv中还是在您的普通site-packages中,并摆脱当前的 PIP 版本。对我来说,我有pip==1.5.4
我删除了 PIP 目录和 PIP egg 文件。然后我跑了
easy_install pip==1.2.1
这个版本的 PIP 没有 SSL 问题,然后我能够pip install -r requirements.txt
在我的 virtualenv 中运行我的正常程序来设置我想要的所有在我的requirements.txt
文件中列出的包。
这也是我发现的这个 Google 群组中的几个人推荐的解决问题的方法:
https://groups.google.com/forum/#!topic/beagleboard/aSlPCNYcVjw
[编辑]
如果您全局安装了不同版本的 PIP,则每次创建新的 virtualenv 时都会安装该版本的 PIP,因此您每次都必须为每个新 PIP 执行此操作,除非您更改全局安装的版本。我在开始一个新项目时遇到了这个问题,不得不再次修复并恢复到pip==1.2.1
从pip docs,如果您在代理后面安装:
python get-pip.py --proxy="[user:passwd@]proxy.server:port"
如果您想使用 pip 安装任何软件包,那么最好遵循以下语法:
sudo pip --proxy=http://username:password@proxyURL:portNumber install yolk
我遇到了这个问题,发现答案终于解决了。
您可以尝试添加一个新文件/root/.pip/pip.conf
,然后编写:
[global]
index-url=http://pypi.douban.com/simple/
在文件中。
对于这个问题,我的解决方案有所不同。
我系统的日期和时间没有同步。
如果出现问题,请检查您的系统数据/时间,如果不是问题,请继续执行其他建议。