我正在尝试让Python 2.7在OSX El Capitan上与pyenv和virtualenv很好地配合使用。 我已经安装了带有自制软件的pyenv
,然后是带有pyenv install 2.7.11
的Python 2.7.11。 这描述了设置:
$ which python
/usr/local/bin/python
$ which virtualenv
/usr/local/bin/virtualenv
$ head -1 /usr/local/bin/virtualenv
#!/usr/local/bin/python
$ which pip
/Users/username/bin/pip
$ head -1 /Users/robinedwards/bin/pip
#!/usr/local/bin/python
$ pyenv install --list | grep 2.7.11
2.7.11
.bashrc
包含以下行:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
现在,当我尝试创建一个新的虚拟环境项目时:
$ pyenv virtualenv 2.7.11 newproject
pyenv: pip: command not found
知道我做错了什么吗?
我不确定该解决方案是否与问题匹配,但是在安装 pyenv、pyenv-virtualenv 并选择 python 版本后,我不得不以这种方式运行pip
:
$ pyenv exec pip install
我有同样的错误消息。该问题是由于 python 版本的安装失败造成的,因此找不到此版本的pip
。事实上,连python
都没有找到。
例:
pyenv install 3.7.2 # this failed, but I did not realize it failed at first
pyenv versions | grep 3.7.2
3.7.2
pyenv local 3.7.2
python --version
pyenv:python:找不到命令
所以问题不在于pip
本身,而在于 python 版本的安装损坏。只要确保在安装带有 pyenv
的 python 版本时成功即可。
使用 pyenv 安装 python 版本后
pyenv install 3.7.13
我首先必须运行:
pyenv global 3.7.13
现在皮普工作正常。
如果您没有从 python.org 提供的二进制文件中安装pyenv
,则需要单独安装pip
安装所需的python
版本后,下载并安装pip
:
wget https://bootstrap.pypa.io/get-pip.py
(sudo) python ./get-pip.py
rm get-pip.py
参考: https://pip.pypa.io/en/stable/installing/
我在使用 zsh
和 pyenv
时配置错误。我通过删除我在pyenv上~/.zshrc
的内容,删除环境和python版本(在我的情况下pyenv uninstall 3.9.0
),然后运行以下内容来解决它:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init --path)"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
这直接来自提供的~/.pyenv/README
所以我想这应该是显而易见的。重新安装python版本(pyenv install 3.9.0
)并再次创建环境(pyenv virtualenv 3.9.0 my-env
)后,pip在通过pyenv activate my-env
激活环境时按预期工作