怎样在Ubuntu 12.04 LTS上为Python 3安装pip

我正在尝试为Python 3.3安装Pillow模块,但是为了这个我需要先安装pip。 每次安装pip时它都会安装到Python 2.7上,有什么帮助吗?

2使用sudo apt-get install python3-pip应该很容易,但是我发现它找不到。你也遇到过这个问题吗?你解决了吗? - Charlie Parker
10个回答

2018更新:这仍然吸引了很多赞,让我感到担忧。

12.04已经不再受支持大约一年了。您可以通过升级到较新的、受支持的Ubuntu版本来安装pip3。您有3个LTS版本可供选择。


在更现代的Ubuntu版本上,你可以直接使用sudo apt-get install python3-pip(然后使用pip3),但是12.04版本没有打包Python 3的pip
因此,你需要按照更传统的安装方式使用easy_install
sudo apt-get install python3-setuptools
sudo easy_install3 pip

现在,很有可能会与Python 2的pip冲突并覆盖/usr/bin/pip,因为它会安装基于python3的/usr/local/bin/pip,这也在Ubuntu 12.04的$PATH中。

只要您知道这一点,它就不应该覆盖它,所以这可能是可以接受的。但是,最好开始探索virtualenv的幸福世界,正如this answer suggests所建议的。

或者,您可以将易于安装的python3版本的pip重命名:

sudo mv /usr/local/bin/pip /usr/local/bin/pip-3

然后您可以确认您现有的pip仍然基于Python 2.7。
pip --version

1这给一些人带来了问题,因为在/usr/local/lib/python3.2/dist-packages/中存在非可读的文件。 - Marius Gedminas
1这无疑是对所提问题的最佳答案,但如果你正在使用较新版本的Ubuntu,下面dmeu的回答更合适。 - brandizzi
1别这样做。这会破坏你的安装。pip8需要python3.4,但是这将安装python3.2作为python3设置工具的要求,然后由于兼容性问题,当pip3无法运行时,你将无法卸载它。这会完全破坏一切。这里有一些笔记,可以帮助你恢复到一个稳定的状态:http://getpostdelete.com/unscrewing.txt(适用于LTR 12.04)。请注意,这不会作为一个脚本运行。阅读每个评论,并自行决定是否愿意承担相关风险。我已经使用Linux 20年了,但我不能保证这个解决方案适合你。 - kristopolous
为什么无法找到package python3-pip?我也遇到了这个问题,不明白为什么以及如何解决。 - Charlie Parker
1在Ubuntu Trusty(14.04)上,sudo apt-get install python3-setuptoolssudo easy_install3 pip都可以正常工作;-) - Maxwel Leite
1你因为12.04已经过时而得到了我的点赞;) - Markus
1easy_install已从python-setuptools中移除。https://launchpad.net/ubuntu/+source/python-setuptools/39.0.1-2 - JBaczuk
@JBaczuk 这个回答是针对12.04版本的。14.04及以上版本已经有pip3软件包了。由于12.04已经不再受支持,现在唯一的解决方案是:昨天就升级吧 - Oli
错误信息:找不到本地软件包或下载链接以安装pip 错误:无法找到适合的pip发行版。 - Rob
Ubuntu 12.04可能会失败,因为它在pypi上使用http而不是https。然而,你可以使用:easy_install3 -i https://pypi.python.org/simple/ pip - PHZ.fi-Pharazon

你也可以通过sudo apt-get install python3-pip来安装它,然后使用pip3来调用。Et voilà

15不适用于Ubuntu 12.04 LTS。 - Marius Gedminas
2@MariusGedminas 那么也许你不应该只使用过时的软件库。即使“precise”仍然被支持,这并不意味着它拥有最新的软件。这只是意味着他们将其保留在“官方软件库”上,而不是将其移动到“旧软件库”,这样apt-get就无法访问它,以避免破坏您的软件包管理器。一个例子是:我试过了,它可以正常工作;我的sources.list使用“trusty”软件库,在12.04中只需对sources.list进行一些添加,并执行apt-get update即可使用。 - Braden Best
1还要注意到可能存在的巨蟒情况。 - dmeu
这在你想要全局安装pip3时非常有用。 - cyberbikepunk
@BradenBest 不确定这是否属实,但似乎这是Docker中的Ubuntu版本。我应该使用哪个版本?我还遇到了安装pip3的问题,希望能够安装它。 - Charlie Parker
@CharlieParker,你应该使用哪个版本的Ubuntu取决于个人口味。想要避免频繁进行完整的LSB系统更新以防止软件包管理器出现问题吗?那就使用最新的LTS版本。想要使用最新的Ubuntu吗?那就使用最新的Ubuntu版本。至于pip3,不管你使用哪个仓库,都可能会有些棘手。如果apt-get无法解决问题,也许你最好手动构建和安装Python包。 - Braden Best
当我执行你建议的命令时,我得到了一个非零代码:100的错误消息:“The command '/bin/sh -c apt-get install -qy python3-pip' returned a non-zero code: 100”。你也收到这个错误消息了吗? - Charlie Parker

如果您在同一台机器上使用多个Python版本,使用虚拟环境可能会很有用。这允许您使用任意数量的Python实例,每个实例都有自己的软件包集。如果您正在使用多个Python版本和/或您的项目需要不同版本的相同软件包,则这非常有用。
要设置此项,请执行以下操作:
sudo pip install virtualenv 

这可以使用任何pip完成,因此也可以使用Python 2.7中的标准pip。然后,要使用python3作为解释器创建虚拟环境,请执行以下操作:
virtualenv my_py3 --python=/usr/bin/python3
source my_py3/bin/activate # to activate the python3 environemt

然后使用以下命令安装您可能需要的任何软件包
pip install <package> # no sudo required now, as you're IN the virtual environment

停止虚拟环境,只需简单地输入:
deactivate

ењЁдҢүз”ЁUbuntu 12.04зљ„PPA安иӘ…Python 3.3之еђҺпәЊж€‘дҢүз”Ёд»Өдё‹е‘Ң令在本地安иӘ…дғ†easy_install 3.3гЂ‚
wget http://python-distribute.org/distribute_setup.py
python3.3 -m distribute_setup install --user
easy_install-3.3 --user pip

这样可以避免污染网站的pipeasy_install安装。最后,我将$HOME/.local/bin添加到我的路径中。现在我可以运行pip3.3了!

补充dmeu的回答,你可能需要更新你的/etc/apt/sources.list文件,将更近期的镜像源添加进去,比如trusty。
sudo vi /etc/apt/sources.list
sudo apt-get update

为了澄清长期支持的含义,它并不一定意味着他们会与最新和最好的软件保持精确的更新。当然,你会得到一些更新,但是也会出现某些软件包不存在的情况,比如像python3-pip这样的软件包,在trusty仓库中是存在的。
LTS的意思是,他们将保持precise在主要仓库中,以确保您的软件包管理器不会出现问题。当12.04最终过时时,您将有机会执行apt-get update、upgrade和dist-upgrade操作。他们之所以称之为支持,而不是尖端技术,是有原因的。
如果apt-get方法仍然无效,您还可以尝试下载python3-pip的.deb软件包,并使用dpkg(即debian软件包管理器)进行安装。
sudo dpkg -i <name-of-package>.deb

希望这能有所帮助。

2在一个全新的Ubuntu 18.04 LTS系统上,执行sudo apt-get install python3-pip时无法找到python3.pip。但是,先执行sudo apt-get update然后再次尝试安装成功解决了这个问题。 - David Ching
@DavidChing,以防有任何混淆,Trusty是14.04版本。 - Braden Best

我尝试了以下命令:
sudo apt-get update
sudo apt-get install python3-pip

这对我来说似乎解决了问题。希望这能帮助其他遇到同样问题的人。

到目前为止,我最喜欢的选择是安装Anaconda或Miniconda来使用Python3:https://www.continuum.io/downloads 任何包都可以通过conda install package-name命令进行安装。
如果你需要Python2,你可以创建一个虚拟环境:
conda create -n python2 python=2.7 anaconda source activate python2
详细信息请参见这里:https://stackoverflow.com/a/24415581/551694

将宇宙仓库添加到存储库中就可以解决问题。 这里我找到了它:
引用: 你需要启用包含python-pip软件包的宇宙类别。
使用编辑器打开/etc/apt/sources.list。
sudo nano /etc/apt/sources.list

然后在每行的末尾加上"宇宙",就像这样:
deb http://archive.ubuntu.com/ubuntu bionic main universe
deb http://archive.ubuntu.com/ubuntu bionic-security main universe 
deb http://archive.ubuntu.com/ubuntu bionic-updates main universe

然后运行:
sudo apt update

最后:
sudo apt install python-pip

截至2022年8月,主要问题如下:
  • PyPi已停止支持http,因此您需要使用开关:-i https://pypi.python.org/simple/
  • PyPi要求支持https的SNI。您可以通过检查错误消息~/.pip/pip.log来了解这一点
  • Pip要求最低Python 3.5版本,因此有效的升级选择有三种:i)(由@allanlaal建议)使用bionic软件包 ii)从源代码编译python或者 iii)使用传统ppa deadsnakes + easy_install中的以下软件包

安装步骤:

echo |add-apt-repository ppa:fkrull/deadsnakes
apt-get update
apt-get -y install python3.5 python3-setuptools
rm /usr/bin/python3
ln -sf /usr/bin/python3.5 /usr/bin/python3
cd /opt
git clone https://github.com/pypa/setuptools.git
cd setuptools
git reset --hard 7ff173926c4773d39f3320ff0c9d65afb290e7b1 #50.3.2 - last version that supports python 3.5
python3 bootstrap.py
python3 setup.py install
easy_install3 -i https://pypi.python.org/simple/ pip==20.3.4

在旧版本的软件包管理器中无法使用。 请使用sudo apt update && sudo apt upgrade -y升级您的软件包管理器版本,它将完美运行。