Pipenv:找不到命令

时间:2017-09-24 15:28:45

标签: python python-3.x pip pipenv

我是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,但我不清楚要添加到文件中的内容或者是否需要修改。

20 个答案:

答案 0 :(得分:52)

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

$ sudo pip install pipenv

答案 1 :(得分:51)

这为我解决了这个问题:

sudo -H pip install -U pipenv

答案 2 :(得分:39)

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

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

请参阅pipenv's installation instructions

答案 3 :(得分:7)

在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

答案 4 :(得分:6)

我试过了:

python -m pipenv # for python2

python3 -m pipenv # for python3

希望这可以帮到你。

答案 5 :(得分:4)

Python存储软件包的位置

在进入将安装pipenv的命令之前,值得了解pip installs Python packages的位置。

全局站点程序包是Python安装程序包的地方,这些包将可供系统上的所有用户和所有Python应用程序使用。您可以使用以下命令检查全局站点包

python -m site

例如,在具有Python 3.7的Linux上,路径通常为

/usr/lib/python3.7/dist-packages/setuptools

用户网站软件包是Python安装仅对您可用的软件包的地方。但是,对于您创建的所有Python项目,这些包仍将可见。您可以通过以下方式获取路径

python -m site --user-base

在具有Python 3.7的Linux上,路径通常为

~/.local/lib/python3.7/site-packages

使用Python 3.x

在大多数Linux和其他Unices上,通常并行安装Python 2和Python 3。默认的Python 3可执行文件几乎总是python3。根据您的Linux发行版本,pip可能有以下两种版本之一

pip3
python3-pip
python36-pip
python3.6-pip

Linux

避免将pipsudo一起使用!是的,这是安装Python软件包的最方便的方法,可执行文件位于/usr/local/bin/pipenv,但这也意味着特定的软件包对于所有用户以及您创建的所有Python项目始终可见。而是将每用户站点包与--user

结合使用
pip3 install --user pipenv

pipenv可在

获得
~/.local/bin/pipenv

macOS

在macOS上,Homebrew is the recommended way to install Python。您可以轻松升级Python,安装多个版本的Python,以及使用Homebrew在版本之间切换。

如果您使用自制软件的Python,则pip install --user被禁用。全局站点包位于

/usr/local/lib/python3.y/site-packages

,您可以在此处安全地安装Python软件包。 Python 3.y还在以下位置搜索模块:

 /Library/Python/3.y/site-packages
 ~/Library/Python/3.y/lib/python/site-packages

Windows

由于遗留原因,Python安装在C:\Python37中。 Python可执行文件通常命名为py.exe,您可以将pippy -m pip一起运行。

全局站点软件包安装在

C:\Python37\lib\site-packages

由于通常不共享Windows设备,因此也可以在全局范围内安装软件包

py -m pip install pipenv

pipenv现在可以在

获得
C:\Python37\Scripts\pipenv.exe

我不建议使用--user在Windows中安装Python软件包,因为默认的用户site-package目录位于Windows漫游配置文件中

C:\Users\user\AppData\Roaming\Python\Python37\site-packages 

当您在公司环境中登录/注销时,漫游配置文件将用于终端服务(远程桌面,Citrix等)中。大型漫游配置文件可能导致Windows中缓慢的登录,注销和重新启动。

答案 6 :(得分:3)

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"

答案 7 :(得分:2)

对于使用 sudo pip3 install pipenv 安装的用户,您需要使用 python3 -m pipenv shellpython3.9 -m pipenv shell

答案 8 :(得分:2)

通过覆盖全局/系统管理的pip安装,全局安装pipenv可能会产生不利影响,从而在尝试运行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

答案 9 :(得分:1)

如何使PIPENV成为基本命令

带有Python3的Pipenv需要以“ $ python -m pipenv [command]”或“ $ python3 -m pipenv [command]”运行;开头的“ python”命令根据您在外壳中激活Python的方式而有所不同。要修复并设置为“ $ pipenv [command]”,请执行以下操作:[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外壳 会起作用。

此用法将适用于在Git Bash中创建命令。例如:

alias python='winpty python.exe'

进入.bash_profile并: $ source .bash_profile 将允许Python作为“ python”运行。

不客气。

答案 10 :(得分:1)

我不知道发生了什么,但是以下工作(在mac os catalina下)做了

$ brew install pipenv

$ brew update pipenv

完成此操作后,我就可以使用

$ pipenv install [package_name]

答案 11 :(得分:1)

我在 Mac 上使用 zsh,对我有用的是首先安装 pipenv

pip3 install --user pipenv

然后我更改了 ~/.zshrc 中的 PATH

vi ~/.zshrc

在编辑器中按 i 插入您的文本:

export PATH="/Users/yourUser/Library/Python/3.9/bin:$PATH"

esc 然后写 :wq! 关闭终端并重新打开它。 最后写pipenv

这种方式对我使用 macOS BigSur 11.1 很有效

答案 12 :(得分:0)

在某些旧pip版本中:

sudo easy_install pip
sudo pip install pipenv

答案 13 :(得分:0)

对于Windows用户,这可能是由于与virtualenv的安装冲突。对我来说,当我先卸载virtualenv和pipenv,然后仅安装pipenv时,它就起作用了。

pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv

现在pipenv install xxx为我工作了

答案 14 :(得分:0)

这对我来说是固定的:

sudo -H pip install -U pipenv

答案 15 :(得分:0)

安装pipenv(sudo pip install pipenv)之后,尝试运行pipenv shell命令时,我始终收到“找不到命令”错误。

我终于用以下代码修复了它:

pip3 install pipenv
pipenv shell

答案 16 :(得分:0)

在Mac OS X Catalina上,它似乎遵循Linux路径。使用以下任何一种方式:

pip install pipenv
pip3 install pipenv
sudo pip install pipenv
sudo pip3 install pipenv

基本上在此处安装pipenv:

/Users/mike/Library/Python/3.7/lib/python/site-packages/pipenv

但是它不是可执行文件,因此永远找不到。唯一对我有用的是

pip install --user pipenv

这似乎导致上述目录中的__init__.py文件具有正确显示pipenv命令的内容。

,其他所有关于此问题的发布和评论建议都失败了,一切都开始起作用。

pipenv软件包肯定显得很挑剔。

答案 17 :(得分:0)

OS:Linux
点子版本:pip3
sudo -H pip3 install -U pipenv

OS:Windows
点子版本:任意
sudo -H pip install -U pipenv

答案 18 :(得分:0)

您可以考虑通过pipsi安装pipenv

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

答案 19 :(得分:-1)

对我来说,在 Windows 上有效的是以管理员身份运行命令提示符,然后全局安装 pipenv:python -m pip install pipenv。