安装pipenv导致pip3无法使用

时间:2018-07-07 18:07:11

标签: django linux python-3.x pip pipenv

我使用以下方法安装了pipenv
$ pip3 install pipenv
这给了我错误ImportError: cannot import name 'main'
为了解决此错误,我followed these instruction
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
现在pip3命令正在终端上运行。
现在我使用pipenv安装pip3 install pipenv
它成功安装,但是当我尝试在终端上执行pipenv时,它给了我  pipenv: command not found
此时pip3还给出了ImportError: cannot import name 'main' error
以解决这个问题followed these instruction

PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"

此时,点pipenv在工作,但是pip3在工作。
如何使pip3pipenv同时工作?

此外,似乎我已经弄乱了pipenv设置,现在默认情况下在/home/sysadmin创建了虚拟环境 而不是我用来创建虚拟环境/home/sysadmin/Desktop/helloworld

的位置

enter image description here

1 个答案:

答案 0 :(得分:2)

问题是由于在安装pipenv时覆盖了pip的系统管理版本。通过按顺序恢复系统管理的点,您执行了正确的第一步:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

完成此操作后,必须注意,由于pip冲突,pipenv可能无法在全局级别安装。您可以在用户级别安装pipenv:

pip install --user pipenv

这应该在/home/username/.local中的用户级别安装pipenv,以使其与pip的全局版本不冲突。就我而言,在运行'--user'开关后仍然无法正常工作,因此我再次运行了更长的“修复我弄错的东西”命令以准备环境:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

,然后执行以下操作:

mkdir /home/username/.local ...(如果尚不存在)

export PYTHONUSERBASE=/home/username/.local

确保导出已完成(在此过程中只咬了我一次):

echo $PYTHONUSERBASE

然后,我运行了pip install --user pipenv,一切都很好。然后,我可以从CLI运行pipenv,它不会覆盖全局/系统管理的pip模块。当然,这是特定于用户的,因此您要确保在以希望使用pipenv的用户身份工作时以这种方式安装pipenv。

参考文献:

https://pipenv.readthedocs.io/en/latest/diagnose/#no-module-named-module-name https://pipenv.readthedocs.io/en/latest/install/#pragmatic-installation-of-pipenv https://pip.pypa.io/en/stable/user_guide/#user-installs