我使用以下方法安装了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
在工作。
如何使pip3
和pipenv
同时工作?
此外,似乎我已经弄乱了pipenv设置,现在默认情况下在/home/sysadmin
创建了虚拟环境
而不是我用来创建虚拟环境/home/sysadmin/Desktop/helloworld
答案 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