我试着用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,但我不清楚该向文件中添加什么,或者修改是否有必要。


当前回答

在旧pip版本的某些情况下:

sudo easy_install pip
sudo pip install pipenv

其他回答

我在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

发生这种情况是因为您没有在全局(系统范围)安装它。为了让它在你的路径中可用,你需要使用sudo安装它,就像这样:

$ sudo pip install pipenv

我试了一下:

python -m pipenv  # for python2

python3 -m pipenv # for python3

为什么有效:在Bash和其他类unix的shell环境中,-m选项用于指定要作为脚本运行的模块。

当您使用Python -m命令运行Python脚本时,您是在告诉Python解释器将脚本作为顶级模块执行,而不是作为脚本文件执行。python -m pipenv命令告诉python解释器以脚本的形式运行pipenv模块。pipenv模块必须可以从当前工作目录或PYTHONPATH环境变量中的一个目录导入。

如何使pipenv一个基本命令

使用Python3的Pipenv需要以“$ python -m Pipenv[命令]”或“$ Python3 -m Pipenv[命令]”的方式运行;开头的"python"命令根据你在shell中激活python的方式而有所不同。修复并设置为"$ pipenv[命令]":[Git Bash中的示例]

$ cd ~
$ code .bash_profile

第一行是必要的,因为它允许您访问.bash_profile文件。第二行在VSCode中打开.bash_profile,因此插入默认代码编辑器的命令。 在这一点上,你会想要(在.bash_profile中)编辑文件,添加这行代码:

alias pipenv='python -m pipenv'

然后保存文件并在Git Bash中输入:

$ source .bash_profile

然后你可以在任何地方使用pipenv作为命令,例如: $ pipenv shell 将工作。

这种使用方法适用于在Git Bash中创建命令。例如:

alias python='winpty python.exe'

在.bash_profile中输入: $ source .bash_profile 将允许Python以“Python”的形式运行。

不客气

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

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

现在pipenv安装xxx为我工作