Pipenv:找不到命令

问题描述 投票:51回答:11

我是Python开发新手,并尝试使用pipenv。我运行了命令pip install pipenv,它成功运行:

...
Successfully built pipenv pathlib shutilwhich pythonz-bd virtualenv-clone
Installing collected packages: virtualenv, pathlib, shutilwhich, backports.shutil-get-terminal-size, pythonz-bd, virtualenv-clone, pew, first, six, click, pip-tools, certifi, chardet, idna, urllib3, requests, pipenv
...

但是,当我在一个新的根项目目录中运行命令pipenv install时,我收到以下消息:-bash: pipenv: command not found。我怀疑我可能需要修改我的.bashrc,但我不清楚要添加到文件中的内容或者是否需要进行修改。

python python-3.x pip pipenv
11个回答
65
投票

这是因为您没有在全球范围内安装它(系统范围)。要使它在你的path中可用,你需要使用sudo安装它,如下所示:

$ sudo pip install pipenv

0
投票

在某些旧版pip版本中:

sudo easy_install pip
sudo pip install pipenv

0
投票

对于窗口用户,这可能是由于与virtualenv的安装冲突。对我来说,当我首先卸载virtualenv和pipenv,然后只安装pipenv时,它工作。

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

现在,pipenv install xxx为我工作


62
投票

这为我修好了:

sudo -H pip install -U pipenv

42
投票

如果您已完成用户安装,则需要将正确的文件夹添加到PATH变量中。

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

pipenv's installation instructions


11
投票

我在Mac OS X 10.13 High Seirra上与pipenv有同样的问题,另一台Mac工作得很好。我使用Heroku来部署我的Django服务器,一些在2.7中,一些在3.6中。所以,我需要2.7和3.6。当HomeBrew安装Python时,它将python指向原始2.7,而python3指向3.6。

问题可能是由于$ pip install pipenv。我检查了/ usr / local / bin并且pipenv不在那里。所以,我尝试了完全卸载:

$ pip uninstall pipenv

Cannot uninstall requirement pipenv, not installed
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

$ pip3 uninstall pipenv
Skipping pipenv as it is not installed.

然后重新安装并立即工作:

$ pip3 install pipenv
Collecting pipenv

7
投票

我试过这个:

python -m pipenv # for python2

python3 -m pipenv # for python3

希望这可以帮到你。


4
投票

OSX GUYS,在这里!

正如@charlax回答(对我来说是最好的),你可以使用更动态的命令来设置PATH,buuut对于mac用户来说这是行不通的,有时你的USER_BASE路径来自网站是错误的,所以你需要找出你的位置python安装是。

$ which python3
/usr/local/bin/python3.6

你会得到一个符号链接,然后你需要找到源的符号链接。

$ ls -la /usr/local/bin/python3.6
  lrwxr-xr-x  1 root  wheel  71 Mar 14 17:56 /usr/local/bin/python3.6 -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

(这个../../../表示root)

所以你找到了python路径(/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6),那么你只需要输入〜/ .bashrc,如下所示:

export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.6/bin"


2
投票

全局安装pipenv会因覆盖全局/系统管理的pip安装而产生负面影响,从而在尝试运行pip时导致导入错误。

您可以在用户级别安装pipenv:

pip install --user pipenv

这应该在/home/username/.local中的用户级安装pipenv,这样它就不会与pip的全局版本冲突。在我的情况下,在运行'--user'开关后仍然无法工作,所以我运行了更长的'修复我搞砸了'命令一次以恢复系统管理环境:

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

^在这里找到:Error after upgrading pip: cannot import name 'main'

然后做了以下事情:

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


0
投票

您可以考虑通过pipenv安装pipsi

curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get -pipsi.py | python3
pipsi install pew
pipsi install pipenv

不幸的是,在撰写本文时,macOS + python3存在一些问题,请参阅12。在我的情况下,我不得不将bashprompt更改为#!/Users/einselbst/.local/venvs/pipsi/bin/python


0
投票

这对我来说是固定的:

sudo -H pip install -U pipenv
© www.soinside.com 2019 - 2024. All rights reserved.