将pip与--user标志一起使用时,默认安装位置为〜/ .local / lib / pythonX.Y / site-packages,其中X.Y指定python的版本。这样可以将使用pip2安装的软件包与通过pip3安装的软件包分开。
但是,当使用pip.conf文件指定目标安装目录时,我只看到了这样的全局设置:
[global]
target=/data/user/pip
这有效,但不会将pip2安装的软件包与通过pip3安装的软件包分开,这可能会引起问题。有没有办法为通过pip2安装的软件包和通过pip3安装的软件包指定不同的位置?
答案 0 :(得分:1)
不幸的是,无法在pip
配置中处理特定于版本的内容。 The current decision about this is:
...这似乎不是我们真正需要的东西。
但是,实际上不是通过--target
而是通过PYTHONUSERBASE
环境变量来配置用户安装目标。这意味着您可以从env传递用户群,例如PYTHONUSERBASE=/some/dir pip install --user pkgname
。如果您想保留自定义用户库目录,我将使用别名。 bash
的示例:在您的.bashrc
/ .bash_profile
中,添加:
alias pip2='PYTHONUSERBASE=/tmp/pip2 pip2'
alias pip3='PYTHONUSERBASE=/tmp/pip3 pip3'
alias pip3.7='PYTHONUSERBASE=/tmp/pip3.7 pip3.7'
# etc
保存文件,然后重新加载
source ~/.bashrc
或
source ~/.bash_profile
或只是打开一个新终端。现在
$ pip2 install --user pkgname
将安装到/tmp/pip2
等上。