又一个 `bash: pip: command not found`

5
许多安装说明告诉你执行pip install [package]。但在我的情况下,它不起作用,会显示-bash: pip: command not found

python pip install [package]可以正常工作。同样的道理,easy_install不能直接运行,需要通过python启动才能运行。

我不知道它应该如何工作。 Pip不是一个可执行文件,也没有叫做pip.py的模块,只有<path>\pip\__init__.py。因此,如果要正确使用pip install [package],bash shell必须知道何时充当Python解释器。但它并不知道。

我不相信所有的安装说明都是错的。所以我肯定是漏了什么。是什么呢?

这个没有帮助,这个也没有帮助,实际上尝试sudo apt-get install python-pip导致了一个未解决的错误。所以我不得不恢复到这个解决方案,以获得部分运行的pip。(现在从顶部重新阅读)。

编辑:Python 2.7。不是3.x。

4个回答

4
大多数软件包,包括Debian的软件包,都会添加一个/usr/bin/pip(或pip3,请参见下文)。请参阅:https://packages.debian.org/jessie/all/python-pip/filelist 我认为通过get-pip.py安装程序安装的pip也会这样做。
该文件基本上通过console_scripts通过python进行中转。
检查您的/usr/bin和/usr/local/bin以获取pip。 (如果您在软件包管理器之外安装了pip,或者没有使用root/sudo,则它们可能不存在)。但是它们应该存在......
如果您正在使用Python 3,则该文件的名称可能为pip3,因此请检查/usr/bin和/usr/local/bin是否有该文件。
如果您需要快捷方式,可以将条目添加到.bash_aliases中别名。
alias pip='pip3'
# or
# alias pip='python pip'

别名是个不错的解决方法,谢谢。有一个符号链接 /usrbin/pip -> /usr/local/bin/pip 但后者不存在。 - RolfBly
你是如何安装当前的pip的?最后一个地方应该看看是$HOME/.local/bin/,但那只有在你手动告诉python本地安装pip时才会出现。如果你在/usr/bin/pip处有一个符号链接,而目标不存在,我认为在尝试运行pip命令时它应该报错而不是说找不到命令。which pip会告诉你它正在哪里寻找。 - Hong
哪个pip什么也不说。空行。 - RolfBly
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Hong
这真的很奇怪...不管怎样,我的最佳猜测是检查你的/root/.local/bin是否存在或者你的主用户的 $HOME/.local/bin。与此同时,别名应该在你这里可用,但是对于开发人员来说,拥有一个不确定的环境从来不是好事。 - Hong
让我们在聊天中继续这个讨论 - RolfBly

3

尝试重新安装或修复失败了。所以我完全删除了pip,然后进行了干净的安装。首先:

sudo apt-get remove --auto-remove python-pip 

然后,根据需要删除pips缓存和现有下载(在我的情况下,我保留了虚拟环境中仍在工作的pips):

sudo find / -type d -name 'pip*'
sudo rm -rf <dirname>

然后下载官方pip安装程序并将其安装:
wget https://bootstrap.pypa.io/get-pip.py 
sudo python get-pip.py  

现在pip freeze没有错误了。另外:

  • 问题是pip脚本消失了。重新安装后,它又出现了:/usr/local/bin/pip。所以我认为的:

    bash shell应该知道何时作为python解释器运行。但实际上不是这样的。

    是不正确的。如果脚本的shebang-line指向正确的解释器,shell将会启动Python脚本。我不断地学习中...

  • 许多来源建议使用sudo apt-get install python-pip。这是错误的。apt-get版本落后于当前的稳定版本。混合使用版本会导致各种错误。


1

使用python3 -m pip install X命令进行安装,其中X是要安装的包名,例如我想安装Pillow Python Imaging Library,则会使用以下命令:

python3 -m pip install Pillow

1

这对我解决了问题。

清空并重新安装pip。

sudo apt-get purge python-pip
sudo apt-get update
sudo apt-get install python-pip

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