lga*_*nts 76 python pip python-3.x 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
...
Run Code Online (Sandbox Code Playgroud)
但是,当我pipenv install
在一个新的根项目目录中运行该命令时,我收到以下消息:-bash: pipenv: command not found
.我怀疑我可能需要修改我的.bashrc,但我不清楚要添加到文件中的内容或者是否需要进行修改.
小智 85
这为我修好了:
sudo -H pip install -U pipenv
Run Code Online (Sandbox Code Playgroud)
det*_*hos 75
这是因为您没有在全球范围内安装它(系统范围).为了让它可以在您path
使用sudo
,您需要使用,如下所示:
$ sudo pip install pipenv
Run Code Online (Sandbox Code Playgroud)
cha*_*lax 47
如果您已完成用户安装,则需要将正确的文件夹添加到PATH
变量中.
PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"
Run Code Online (Sandbox Code Playgroud)
请参阅pipenv的安装说明
Joh*_*ang 12
我pipenv
在Mac OS X 10.13 High Seirra上也遇到了同样的问题,另一台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.
Run Code Online (Sandbox Code Playgroud)
然后重新安装即可立即使用:
$ pip3 install pipenv
Collecting pipenv
Run Code Online (Sandbox Code Playgroud)
Han*_*xue 10
在进入将安装的命令之前pipenv
,有必要了解pip
Python 包的安装位置。
全局站点包是 Python 安装包的地方,这些包可供系统上的所有用户和所有 Python 应用程序使用。可以使用命令查看全局站点包
python -m site
Run Code Online (Sandbox Code Playgroud)
例如,在使用 Python 3.7 的 Linux 上,路径通常是
/usr/lib/python3.7/dist-packages/setuptools
Run Code Online (Sandbox Code Playgroud)
用户站点包是 Python 安装仅供您使用的包的地方。但是这些包仍然对您创建的所有 Python 项目可见。你可以得到路径
python -m site --user-base
Run Code Online (Sandbox Code Playgroud)
在使用 Python 3.7 的 Linux 上,路径通常是
~/.local/lib/python3.7/site-packages
Run Code Online (Sandbox Code Playgroud)
在大多数 Linux 和其他 Unices 上,通常 Python 2 和 Python 3 是并行安装的。默认的 Python 3 可执行文件几乎总是python3
. pip
根据您的 Linux 发行版,可以作为以下任何一种使用
pip3
python3-pip
python36-pip
python3.6-pip
Run Code Online (Sandbox Code Playgroud)
避免pip
与sudo
! 是的,这是安装 Python 包的最便捷方式,可执行文件位于/usr/local/bin/pipenv
,但这也意味着特定包始终对所有用户以及您创建的所有 Python 项目可见。相反,使用每个用户的站点包代替--user
pip3 install --user pipenv
Run Code Online (Sandbox Code Playgroud)
pipenv
可在
~/.local/bin/pipenv
Run Code Online (Sandbox Code Playgroud)
在 macOS 上,Homebrew 是安装 Python 的推荐方式。您可以使用 Homebrew 轻松升级 Python、安装多个版本的 Python 以及在版本之间切换。
如果您使用的是 Homebrew 的 Python,pip install --user
则禁用。全局站点包位于
/usr/local/lib/python3.y/site-packages
Run Code Online (Sandbox Code Playgroud)
你可以在这里安全地安装 Python 包。Python 3.y 还会在以下位置搜索模块:
/Library/Python/3.y/site-packages
~/Library/Python/3.y/lib/python/site-packages
Run Code Online (Sandbox Code Playgroud)
出于遗留原因,Python 安装在C:\Python37
. Python 可执行文件通常命名为py.exe
,您可以pip
使用py -m pip
.
全局站点包安装在
C:\Python37\lib\site-packages
Run Code Online (Sandbox Code Playgroud)
由于您通常不共享您的 Windows 设备,因此也可以全局安装一个包
py -m pip install pipenv
Run Code Online (Sandbox Code Playgroud)
pipenv
现在可以在
C:\Python37\Scripts\pipenv.exe
Run Code Online (Sandbox Code Playgroud)
我不建议在 Windows 中安装 Python 包--user
,因为默认用户 site-package 目录在你的 Windows 漫游配置文件中
C:\Users\user\AppData\Roaming\Python\Python37\site-packages
Run Code Online (Sandbox Code Playgroud)
漫游配置文件用于终端服务(远程桌面、Citrix 等)以及您在公司环境中登录/注销时。在 Windows 中登录、注销和重新启动缓慢可能是由大型漫游配置文件引起的。
pip3 install pipenv
Run Code Online (Sandbox Code Playgroud)
pipenv --version
现在,如果您看到类似使用以下命令,请command not found: pipenv
使用以下命令检查 pipelinenv 是否显示
现在我们必须设置 pipelinev 的路径,为此我们首先必须找到用户基础二进制目录,
python3 -m site --user-base
Run Code Online (Sandbox Code Playgroud)
该命令将显示类似这样的内容
/some_directory/Python/3.9
Run Code Online (Sandbox Code Playgroud)
使用终端中显示的路径并附加/bin
在末尾,现在您的路径如下所示
/some_directory/Python/3.9/bin
Run Code Online (Sandbox Code Playgroud)
nano ~/.zshrc
现在您必须设置路径,如果您在终端中使用 zsh (z shell) 类型,或者如果您使用 VSCode 之类的代码编辑器,并且code ~/.zshrc
如果您使用 bash 使用nano ~/.bashrc
或则为 VScode 类型设置路径code ~/.bashrc
在文件中最后添加以下行
export PATH="$PATH:/somedirectory/Python/3.9/bin"
Run Code Online (Sandbox Code Playgroud)
保存文件并退出终端现在打开新终端并键入pipenv --version
您应该看到类似的内容pipenv, version 2022.10.25
python -m site --user-site
Run Code Online (Sandbox Code Playgroud)
你应该看到类似的东西
C:\Users\Username\AppData\Roaming\Python36\site-packages`
Run Code Online (Sandbox Code Playgroud)
现在替换site-packages
为Scripts
. 这可能会返回
C:\Users\Username\AppData\Roaming\Python36\Scripts
Run Code Online (Sandbox Code Playgroud)
您可以在控制面板中永久设置您的用户路径。您可能需要注销才能使 PATH 更改生效。
OSX的家伙,在这里!!!
正如@charlax回答的那样(对我而言,这是最好的),您可以使用更动态的命令来设置PATH,对于Mac用户而言,buuut 无法正常工作,有时您从网站获取的USER_BASE路径错误,因此您需要找出您的位置python安装是。
$ which python3
/usr/local/bin/python3.6
Run Code Online (Sandbox Code Playgroud)
您将获得一个符号链接,然后需要找到源的符号链接。
$ 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
Run Code Online (Sandbox Code Playgroud)
(这../../../
意味着根)
因此,您找到了python路径(/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
),然后只需按如下所示放入〜/ .bashrc中:
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.6/bin"
小智 7
我不知道发生了什么,但以下工作完成了(在 mac os catalina 下)
$ brew install pipenv
$ brew update pipenv
Run Code Online (Sandbox Code Playgroud)
这样做之后我可以使用
$ pipenv install [package_name]
Run Code Online (Sandbox Code Playgroud)
小智 6
在这种情况下,您只需将二进制路径添加到 bash 中即可。例如,如果您使用 ZSH,则需要以管理员身份编辑 .zshrc 文件,然后在上面的注释中添加 @charlax 提到的代码:
PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"
Run Code Online (Sandbox Code Playgroud)
小智 5
通过覆盖全局/系统管理的 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
^ 在此处找到:升级 pip 后出错:无法导入名称“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
操作系统:Linux
Pip版本:pip3
sudo -H pip3 install -U pipenv
操作系统:Windows
Pip 版本:任何一个
sudo -H pip install -U pipenv
小智 5
我在 Mac 上使用 zsh,对我有用的是首先安装 pipelinev
pip3 install --user pipenv
Run Code Online (Sandbox Code Playgroud)
然后我更改了 ~/.zshrc 中的 PATH
vi ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
在编辑器中按i插入文本:
export PATH="/Users/yourUser/Library/Python/3.9/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
按esc然后写:wq! 关闭终端并重新打开它。最后写pipenv
这种方法对我使用 macOS BigSur 11.1 有效
sudo pip3 install pipenv
,您需要使用python3 -m pipenv shell
或python3.9 -m pipenv shell
小智 5
在 Mac 上您可能需要执行以下操作:
pip3 install pipenv
Run Code Online (Sandbox Code Playgroud)
然后,cd
进入根目录找到该.zshrc
文件。
然后将其添加到路径中
export PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
注意:3.9 是您系统上运行的 Python 版本。.zshrc
注意:您可以在根目录中使用cmd++访问...shift该.
文件默认是隐藏的
保存并重新启动您的终端