python - pip 不支持使用 sudo 的 PIP_INDEX_URL

标签 python repository pip

根据doc我可以指示 pip 使用我的私有(private) pypi 存储库而不是官方存储库:

For pip this can be done by setting the environment variable PIP_INDEX_URL in your .bashrc/.profile/.zshrc:
export PIP_INDEX_URL=http://localhost:8080/simple/

所以我将我的私有(private)存储库(例如,http://pypi.mycompany.com/simple)添加到我的 Debian 服务器上的 /etc/profile 中。但是 pip 仍然会引发错误:

john@server:~$ sudo pip install ipython
Downloading ...
    Cannot fetch index base URL https://pypi.python.org/simple/
    ...

看起来 pip 忽略了我设置的环境变量 PIP_INDEX_URL。为什么?

更新:

按照@Ivo 的指示,我发现我的 Python 根本看不到变量:

john@server:~$ sudo python -c "import os; print(os.getenv('PIP_INDEX_URL'))"
None

最佳答案

找到了。很简单:sudo 出于安全原因,默认情况下不会使用环境变量。要告诉 sudo 保留 env 变量,可以使用 -E 选项,例如

sudo -E pip install ipython

关于python - pip 不支持使用 sudo 的 PIP_INDEX_URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136675/

相关文章:

python - 使用python计算每一行的数字

perl - 将 "file name"从文本文件传递到命令行,其中文件的每一行都是文件名

Java 代码 API 存储库

python - 使用 Pip,我如何强制只升级未升级的包?

python - 从 git 存储库进行 pip 安装,由于引用错误而出现错误

python - SonarQube Python 插件 - 扫描 python 代码 : Fail to decorate

python - python中逆ERF函数的命令

python - Numpy 教程 - bool 索引

database - DbSet.Attach() 仅更新单个表但不更新引用表

python - 如何将 python 库添加到 Alexa 的 AWS lambda 函数?