当使用带有--user标志的pip时,默认安装位置是〜/ .local / lib / pythonX.Y / site-packages,其中X.Y指定python的版本。这允许使用pip2安装的软件包与通过pip3安装的软件包分离。
但是,当使用pip.conf文件指定目标安装目录时,我只看到了一个全局设置,例如:
[global]
target=/data/user/pip
这有效,但不会将pip2安装的软件包与通过pip3安装的软件包分开,这可能会导致问题。有没有办法为通过pip2安装的软件包和通过pip3安装的软件包指定不同的位置?
不幸的是,在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
等。