我在 Ubuntu 15.04 上使用 pip 时遇到了一个奇怪的问题。当我尝试使用“-t”选项将任何东西放在特定目录中时,它会失败并出现以下错误:
error: can't combine user with prefix, exec_prefix/home, or install_(plat)base
例如,pip install -t <directory> <package>
因此错误而失败。
我的pip是1.5.6版本,我的Python版本是2.7。
我在 14.10 系统上运行了完全相同的命令,没有任何问题,所以我只能得出结论,这是 15.04 特有的问题。
答案1
我遇到了同样的问题,我注意到默认发行版中的 pip 是旧版本 1.5.6,当前发布的版本是 7.1.0。由于很难追踪问题,我到处寻找“大海捞针”,我将其删除并按照以下建议手动安装:
此评论:https://github.com/pypa/pip/issues/1093#issuecomment-103127883 在此堆栈中引用:https://stackoverflow.com/questions/19460232/pip-list-crashes-with-an-assertionerror
删除 pip:
sudo apt-get remove --auto-remove python-pip
下载安装脚本:
wget https://bootstrap.pypa.io/get-pip.py
重新安装:
sudo python get-pip.py
将命令链接到 bin:
sudo ln -s [PIP_HOME]/bin/pip /usr/local/bin/pip
sudo ln -s [PIP_HOME]/bin/wheel /usr/local/bin/wheel
sudo ln -s [PIP_HOME]/bin/easy_install /usr/local/bin/easy_install
其中 [PIP_HOME] 是 pip 包的目录。
现在当我运行时pip -V
会出现:
pip 7.1.0 from /home/tiberiu/.local/lib/python2.7/site-packages (python 2.7)
回到我的根本问题,pip install -r requirements.txt -t lib
最新版本的命令成功了。