如何在CentOS 7中安装pip?


110

CentOS 7 EPEL现在包括Python 3.4: yum install python34

但是,当我尝试这样做时,即使Python 3.4成功安装,它似乎也没有安装pip。这很奇怪,因为pip默认情况下应将其包含在Python 3.4中。which pip3找不到任何东西,也没有which pip

如何从CentOS 7 EPEL发行版的Python 3.4软件包访问pip?



1
我浏览了那里,但不幸的是没有任何关系。
Jeff Widman

所以没有pip34二进制文件?好吧,python -m pip如果已安装pip,您将始终能够通过它来拨打电话。如果未安装,python -m ensurepip则可以用来引导它。您可能需要提升权限才能调用后一个命令。
cel

1
正确,pip*我在中找不到二进制文件/usr/bin/。可以肯定的是,我正在寻找正确的位置,因为这是安装的位置python3.4pyvenv-3.4位置,并且它们与其他位置没有符号链接。嗯,看起来它似乎根本没有包含在python3.4包中,这有点令人讨厌。该ensurepip模块都不存在python3.4,因此我可能只使用iUS仓库,直到EPEL python3-pip或同等产品交付为止。
Jeff Widman

Answers:


158

我发现在CentOS 7上安装pip3(适用于python3.x软件包)的最简单方法是:

$ sudo yum install python34-setuptools
$ sudo easy_install-3.4 pip

当然,您需要事先启用EPEL存储库。

现在,您应该能够运行以下命令来为python3.x安装软件包:

$ pip3 install foo

我认为这也是最好的解决方案,同时保持一切理智。我不建议编辑init .py
laapsaap,2016年

商定的最佳解决方案将其作为默认答案
johhny B

7
在设置了EPEL的RHEL-7系统上,我成功完成了任务yum install python34-pip
Mike

1
值得一提的是,这已经easy_install-3.4 pip覆盖了整个系统pip。我做了yum reinstall python-pip事后确保没有问题。这意味着您必须pip3按预期显式调用它。
miken32 '18

52
curl https://bootstrap.pypa.io/get-pip.py | python3.4

或者,如果curl由于某种原因而没有:

wget https://bootstrap.pypa.io/get-pip.py
python3.4 get-pip.py

之后,您应该可以运行

$ pip3

1
我收到此错误:zipimport.ZipImportError:无法解压缩数据;zlib不可用...您知道为什么会这样吗?
SoldierCorp,2016年

听起来好像您没有zlib-devel或zlib,具体取决于。您可以尝试使用软件包管理器进行安装吗?sudo yum install zlib或sudo apt-get install zlib。希望对您有所帮助。
DevOops

我也面临着与@SoldierCorp相同的问题,但是当我尝试安装zlib它时,它说出了Package zlib-1.2.3-29.el6.x86_64 already installed and latest version什么想法吗?
Mostafiz Rahman

如果要在OS X 10.11上安装,则可以尝试再次运行xcode设置:xcode-select --install
DevOops

我正在使用centos 6.7
Mostafiz Rahman

16

用于python34的CentOS 7 yum软件包确实包含该ensurepip模块,但是由于某些原因,缺少了应该作为该模块一部分的setuptools和pip文件。要修复,请将最新的车轮从PyPI下载到模块的_bundled目录(/lib64/python3.4/ensurepip/_bundled/):

setuptools-18.4-py2.py3-none-any.whl
pip-7.1.2-py2.py3-none-any.whl

然后编辑__init__.py以匹配下载的版本:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

之后python3.4 -m ensurepip按预期工作。每次创建虚拟环境时,都会自动调用surepip,例如:

pyvenv-3.4 py3
source py3/bin/activate

希望RH将修复损坏的Python3.4 yum软件包,以便不需要手动修补。


2
非常感激。对于那些需要此工具的人,这里的轮子可用于setuptools pypi.python.org/simple/setuptools和这里的pip pypi.python.org/simple/pip
yoshiwaan

不幸的是,编辑surepip的init .py文件会导致RPM验证失败,并且在软件包更新时也会被覆盖。
carlwgeorge '16

2
真的很想知道他们造成这种混乱的理由是什么。我告诉自己一定有一个很好的理由……
xenithorb

@xenithorb,理由可能是将pip单独打包-因为Fedora也有python3-pip。EPEL项目上的python3显然仍在开发中。
maxschlepzig

EPEL(企业linux的额外软件包)python36现在可与一起使用python3.6 -m ensurepip
凯文

9

更新:下面提到的python34错误终于得到修复。现在,这是一个完美的选择。

您可以启用IUS存储库并使其正常运行,而不是使用损坏的EPEL python34软件包

  • 在虚拟环境中点子

main python34upython35uIUS软件包包括pyvenv工具(/usr/bin/pyvenv-3.4/usr/bin/pyvenv-3.5),该工具包括捆绑的pip轮和用于引导虚拟环境的setuptools。

  • 全球点

python34u-pippython35u-pipIUS套餐包括/usr/bin/pip3.4/usr/bin/pip3.5分别。将软件包安装到系统site-packages目录中时,这些工作正常。


1
不知道为什么有人会拒绝这个答案。感谢您引起IUS的注意。
戴夫

关于下降投票,解释EPEL安装的“破损”注释将很有帮助。我今天也从相关搜索中发现了IUS,因此在此处的答案中提及该内容都值得赞扬。
马克·爱丁顿

1
@MarkEdington我编辑了答案,以添加到bugzilla.redhat.com/show_bug.cgi?id=1263057的链接。
carlwgeorge

1
这个问题是固定python34-3.4.5-4
DrStrangepork

8
yum install python34-pip

pip3.4 install foo

您可能需要安装EPEL存储库:

yum install -y epel-release


这个百胜套餐来自哪个回购?
杰夫·威德曼

1
CentOS 7. *:yum install -y epel-release
神宇

1
听起来,这是最近添加到EPEL的,可能应该成为正确的答案。一旦其他人也确认这对他们也有效,那么我将把它作为公认的答案。
杰夫·威德曼

对我来说就像一个魅力。:)
比尔程

在VPS服务器上运行时,此答案
很有帮助

3

更新2019

我最初尝试过easy_install,但它不会以干净直观的方式安装软件包。同样,当需要删除软件包时,它会留下许多需要清理的工件。

sudo yum install epel-release
sudo yum install python34-pip
pip install package

是对我有用的解决方案,它将“ pip3”作为pip安装在系统上。它还使用标准的rpm结构,因此在清除时可以清洁。我不确定如果要在系统上同时使用python2和python3程序包管理器,则需要执行什么过程。


1
这是运行VPS服务器(通常与cPanel
一起

0

只需使用easy_install(用于打包python librarie的Setuptools),就有一种简单的方法。

  • 假设。在执行此操作之前,请检查您的Centos计算机中是否安装了python(至少2.x)。

  • 安装pip的步骤。

    1. 因此,让我们安装easy_install,

      须藤百胜安装python-setuptools python-setuptools-devel

    2. 现在让我们使用easy_install进行点子设置

      须藤easy_install pip

那很棒。现在你有点子:)


0

找出已安装的python3版本:

yum search pip

然后安装最佳匹配。使用reqoquery查找生成的pip3.eg的名称

repoquery -l python36u-pip

告诉我使用pip3.6而不是pip3


0

以下是我安装python34和pip所遵循的步骤

yum update -y
yum -y install yum-utils
yum -y groupinstall development
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum makecache
yum -y install python34u  python34u-pip
python3.6 -v
echo "alias python=/usr/bin/python3.4" >> ~/.bash_profile
source ~/.bash_profile
pip3 install --upgrade pip

# if yum install python34u-pip doesnt work, try 

curl https://bootstrap.pypa.io/get-pip.py | python

要使用curl安装pip3,我做了curl https://bootstrap.pypa.io/get-pip.py | python3
mRyan

-4

在CentOS 7上,该pip版本位于pip3.4并且位于:

/usr/local/bin/pip3.4

2
/ usr / local / bin中的文件不太可能由RHEL / CentOS打包。您可以成功执行“ rpm -qf /usr/local/bin/pip3.4”吗?如果可行,在输出上显示“ rpm -qi <packagename>” ...谁是打包程序?
杰夫W
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.