Pipenv: Command Not Found
我是Python开发的新手,正在尝试使用pipenv。 我运行了命令
1 2 3 4 | ... 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 ... |
但是,当我在新的根项目目录中运行命令
这为我解决了:
1 | sudo -H pip install -U pipenv |
发生这种情况是因为您没有在全球范围内安装它。为了使其在您的
1 | $ sudo pip install pipenv |
如果完成了用户安装,则需要将正确的文件夹添加到您的
1 2 | PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin" PATH="$PATH:$PYTHON_BIN_PATH" |
请参阅pipenv的安装说明
我在Mac OS X 10.13 High Seirra上的
该问题可能是由于
1 2 3 4 5 6 7 8 | $ 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. |
然后重新安装即可立即使用:
1 2 | $ pip3 install pipenv Collecting pipenv |
我尝试了这个:
python -m pipenv # for python2
python3 -m pipenv # for python3
希望这可以帮到你。
OSX的家伙,在这里!!!
正如@charlax回答的那样(对我而言,这是最好的),您可以使用更动态的命令来设置PATH,对于Mac用户而言,buuut无法正常工作,有时从站点获取的USER_BASE路径错误,因此您需要找出您的位置python安装是。
1 2 | $ which python3 /usr/local/bin/python3.6 |
您将获得一个符号链接,然后需要找到源的符号链接。
1 2 | $ 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 |
(此
因此,您找到了python路径(
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.6/bin"
Python在哪里存储软件包
在进入安装
全局站点软件包是Python安装软件包的地方,这些软件包将可供系统上的所有用户和所有Python应用程序使用。您可以使用以下命令检查全局站点包
1 | python -m site |
例如,在具有Python 3.7的Linux上,路径通常是
1 | /usr/lib/python3.7/dist-packages/setuptools |
用户站点软件包是Python安装仅对您可用的软件包的地方。但是,对于您创建的所有Python项目,这些包仍将可见。您可以使用以下方法
1 | python -m site --user-base |
在具有Python 3.7的Linux上,路径通常是
1 | ~/.local/lib/python3.7/site-packages |
使用Python 3.x
在大多数Linux和其他Unices上,通常并行安装Python 2和Python 3。默认的Python 3可执行文件几乎总是
1 2 3 4 | pip3 python3-pip python36-pip python3.6-pip |
的Linux
避免将
1 | pip3 install --user pipenv |
1 | ~/.local/bin/pipenv |
苹果系统
在macOS上,建议使用Homebrew安装Python。您可以轻松升级Python,安装多个版本的Python,以及使用Homebrew在版本之间切换。
如果您使用自制软件的Python,则禁用
1 | /usr/local/lib/python3.y/site-packages |
并且您可以在此处安全地安装Python软件包。 Python 3.y还在以下位置搜索模块:
1 2 | /Library/Python/3.y/site-packages ~/Library/Python/3.y/lib/python/site-packages |
视窗
出于传统原因,Python安装在
全局站点包安装在
1 | C:\Python37\lib\site-packages |
由于通常不共享Windows设备,因此也可以在全局范围内安装软件包
1 | py -m pip install pipenv |
1 | C:\Python37\Scripts\pipenv.exe |
我不建议使用
1 2 | C:\Users\user\AppData oaming\Python\Python37\site-packages |
在终端服务(远程桌面,Citrix等)中以及在公司环境中登录/注销时,将使用漫游配置文件。大型漫游配置文件可能导致Windows中缓慢的登录,注销和重新启动。
通过覆盖全局/系统管理的pip安装,全局安装pipenv可能产生不利影响,从而在尝试运行pip时导致导入错误。
您可以在用户级别安装pipenv:
这应该在/home/username/.local中的用户级别上安装pipenv,以使其与pip的全局版本不冲突。就我而言,在运行'--user'开关后仍然无法正常工作,因此我运行了更长的"修复我搞砸了的东西"命令一次,以恢复系统管理的环境:
^在这里找到:升级pip后出错:无法导入名称main
然后执行以下操作:
确保导出生效(在此过程中,只对我进行一次咬合):
然后,我运行了
参考文献:
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/zh_CN/stable/user_guide/#user-installs
在Mac OS X Catalina上,它似乎遵循Linux路径。使用以下任何一种:
1 2 3 4 | pip install pipenv pip3 install pipenv sudo pip install pipenv sudo pip3 install pipenv |
基本上在这里安装pipenv:
1 | /Users/mike/Library/Python/3.7/lib/python/site-packages/pipenv |
但是它不是可执行文件,因此永远找不到。唯一对我有用的是
1 | pip install --user pipenv |
这似乎导致上述目录中的
当有关此问题的所有其他发布和评论建议都失败时,一切都开始起作用。
pipenv软件包当然看起来很挑剔。
安装pipenv(
我终于用以下代码修复了它:
1 2 | pip3 install pipenv pipenv shell |
对于Windows用户,这可能是由于与virtualenv的安装冲突。对我来说,当我先卸载virtualenv和pipenv,然后仅安装pipenv时,它就起作用了。
1 2 3 | pip uninstall virtualenv pip uninstall pipenv pip install pipenv |
现在
在某些
1 2 | sudo easy_install pip sudo pip install pipenv |
我已将其固定为:
1 | sudo -H pip install -U pipenv |
您可能考虑通过
1 2 3 | curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get -pipsi.py | python3 pipsi install pew pipsi install pipenv |
不幸的是,在撰写本文时,macOS + python3存在一些问题,请参见1、2。就我而言,我不得不将bashprompt更改为