pyenv:pip:命令未找到

35

我正在尝试让Python 2.7在OSX El Capitan上与pyenv和virtualenv良好地协作。 我使用Homebrew安装了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

我在做什么方面出了问题吗?


你是否执行了 source 命令来更新你的 .bashrc 文件? - Haifeng Zhang
当我打开bash时它会执行 - 最后一行 echo .bashrc loaded 报告正常。 - geotheory
1
这里有一个相关的问题 https://github.com/yyuu/pyenv-virtualenv/issues/71 可能会对你有所帮助。 - Haifeng Zhang
@haifzhan 但是pip已经在正常环境中安装了,只是似乎对pyenv不可用。 - geotheory
运行 type -a pyenv 命令。它应该会报告 pyenv 是一个 shell 函数。如果没有,那么你对 pyenv init 的评估可能出了问题,你需要更仔细地查看你的 shell 启动序列。 - wjv
5个回答

32

我不确定那个解决方案是否与问题相符,但在安装pyenv、pyenv-virtualenv并选择Python版本后,我必须以以下方式运行pip

$ pyenv exec pip install

1
我只是好奇。你有什么想法为什么我们需要这样做吗?这对我起作用了,但我不明白为什么。 - Alaleh
@A.A 我猜测 pip 是附属于特定的环境,而不是全局可访问的。但我不确定。 - Adrien Joly
非常感谢,这解决了我的问题。实际上,在安装后运行任何命令(例如jupyter notebook)都可以工作。 - Jhoan Manuel Muñoz Serrano

17

我曾经遇到同样的错误信息。问题是由于 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版本时安装成功。


13

使用pyenv安装Python版本后,

pyenv install 3.7.13

我首先需要运行:

pyenv global 3.7.13  

现在pip正常工作。


7
如果您没有从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/


1

我在使用zshpyenv时遇到了错误的配置。我通过删除~/.zshrc中的内容,在pyenv上删除环境和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)之后,当通过pyenv activate my-env激活环境时,pip可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接