安装 pipenv 导致 pip3 无法使用
Posted
技术标签:
【中文标题】安装 pipenv 导致 pip3 无法使用【英文标题】:installation of pipenv causes pip3 unusable 【发布时间】:2018-12-15 23:15:33 【问题描述】:我安装了pipenv
使用
$ pip3 install pipenv
这给了我错误ImportError: cannot import name 'main'
为了解决这个错误我followed these instructionsudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
现在pip3
命令正在终端上运行。
现在我使用pip3 install pipenv
安装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
同时工作? p>
另外,我似乎搞砸了我的 pipenv 设置,现在虚拟环境默认创建在 /home/sysadmin
而不是我用来创建虚拟环境的位置/home/sysadmin/Desktop/helloworld
【问题讨论】:
【参考方案1】:问题是由于在安装 pipenv 时覆盖了系统管理的 pip 版本。通过按顺序恢复系统管理的 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
【讨论】:
感谢您的回答,但在出现此问题后我停止使用 pipenv,目前正在使用 virtualenv 和 virtualenvwrapper 创建我的虚拟环境。希望您的回答对下一个磕磕绊绊的用户有用。 既然我将 pipenv 用于生产,那么在某个用户下安装 pipenv 以后不会给我在服务器上安装的所有权限带来问题吗?以上是关于安装 pipenv 导致 pip3 无法使用的主要内容,如果未能解决你的问题,请参考以下文章