如何在 CentOS 7 中安装 pip?

Posted

技术标签:

【中文标题】如何在 CentOS 7 中安装 pip?【英文标题】:How to install pip in CentOS 7? 【发布时间】:2015-12-13 15:15:06 【问题描述】:

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?

【问题讨论】:

可能相关:***.com/questions/26576086/… 我看过那里,但不幸的是没有任何关系。 所以没有pip34 二进制文件?好吧,如果已安装,您将始终可以通过 python -m pip 调用 pip。如果没有安装 python -m ensurepip 可以用来引导它。您可能需要提升权限才能调用后一个命令。 正确,没有 pip* 二进制文件,我可以在 /usr/bin/ 中找到。相当肯定我在找对地方,因为那是安装 python3.4pyvenv-3.4 的地方,而且它们没有符号链接到其他地方。嗯,看起来它根本不包含在 python3.4 包中,这有点烦人。 ensurepip 模块对于 python3.4 也不存在,所以我可能只使用 iUS 存储库,直到 EPEL 发布 python3-pip 或同等产品。 显然,python3 EPEL effort 仍在early stage 中。另见pyvenv3.4 doesn't work without pip 和python34's ensurepip is broken。 【参考方案1】:

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

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

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

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

$ pip3 install foo

【讨论】:

我认为这也是最好的解决方案,同时保持一切正常。我不建议编辑 init.py 商定的最佳解决方案将此作为默认答案 在我的 RHEL-7 系统上,设置了 EPEL,我刚刚成功完成了yum install python34-pip 值得注意的是easy_install-3.4 pip 覆盖了系统pip。之后我做了yum reinstall python-pip 以确保没有问题。这意味着您必须按预期显式调用pip3 才能使用它。【参考方案2】:
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

【讨论】:

我收到了这个错误:zipimport.ZipImportError: can't decompress data; zlib 不可用...你知道为什么会这样吗? 听起来你没有 zlib-devel 或 zlib,这取决于。您可以尝试使用包管理器安装它吗? sudo yum install zlib 或 sudo apt-get install zlib。我希望这会有所帮助。 我也面临与@SoldierCorp 相同的问题,但是当我尝试安装zlib 时,它显示Package zlib-1.2.3-29.el6.x86_64 already installed and latest version 知道发生了什么吗? 如果您在 OS X 10.11 上安装,您可以尝试再次运行 xcode 设置:xcode-select --install 我使用的是centos 6.7【参考方案3】:

用于 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 按预期工作。每次创建虚拟环境时都会自动调用 Ensurepip,例如:

pyvenv-3.4 py3
source py3/bin/activate

希望 RH 能够修复损坏的 Python3.4 yum 包,这样就不需要手动修补。

【讨论】:

非常感谢。对于需要此功能的人,可在此处获取 setuptools pypi.python.org/simple/setuptools 和此处用于 pip pypi.python.org/simple/pip 的*** 很遗憾,编辑 ensurepip 的 init.py 文件会导致 RPM 验证失败,并且还会在包更新时被覆盖。 真的很想知道他们造成这种混乱的原因到底是什么。我告诉自己一定有充分的理由...... @xenithorb,理由可能是单独打包 pip - 因为 Fedora 也有 python3-pip。 EPEL 项目上的 python3 显然仍在进行中。 EPEL(企业级 linux 的额外包)python36 现在可与python3.6 -m ensurepip 一起使用。【参考方案4】:

更新:下面提到的python34错误终于得到修复。现在是一个非常好的选择。

您可以启用IUS repo 并使其正常工作,而不是使用broken EPEL python34 packages。

虚拟环境中的点子

主要的 python34upython35u IUS 软件包包括 pyvenv 工具(/usr/bin/pyvenv-3.4/usr/bin/pyvenv-3.5),其中包括用于引导虚拟环境的 pip 和 setuptools ***。

全球点数

python34u-pippython35u-pip IUS 包分别包括 /usr/bin/pip3.4/usr/bin/pip3.5。这些可以很好地将包安装到系统站点包目录。

【讨论】:

不知道为什么有人会否决这个答案。感谢您提醒我们注意 IUS。 关于否决票,解释一下关于 EPEL 安装的“损坏”评论会很有帮助。我今天也从相关搜索中发现了 IUS,这里的答案中提到的任何内容都值得一票。 @MarkEdington 我编辑了答案以添加指向bugzilla.redhat.com/show_bug.cgi?id=1263057 的链接。 此问题已通过 python34-3.4.5-4 修复【参考方案5】:
yum install python34-pip

pip3.4 install foo

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

yum install -y epel-release

【讨论】:

这个 yum 包来自哪个仓库? CentOS 7.* : yum install -y epel-release 听起来像这样最近被添加到 EPEL,并且可能应该成为正确的答案。一旦其他人确认这也适用于他们,那么我会将其作为接受的答案。 对我来说就像一个魅力。 :) 这个答案在 VPS 服务器上运行时有所帮助【参考方案6】:

2019 年更新

我一开始尝试了 easy_install,但它并没有以干净直观的方式安装软件包。此外,当需要删除软件包时,它会留下许多需要清理的工件。

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

是对我有用的解决方案,它将“pip3”安装为系统上的 pip。它还使用标准 rpm 结构,因此在拆卸时很干净。如果您的系统上同时需要 python2 和 python3 包管理器,我不确定您需要采取什么过程。

【讨论】:

这是运行VPS服务器时的正确方法,主要用于cPanel【参考方案7】:

以下是我安装 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【参考方案8】:

只需使用easy_install(用于打包python库的安装工具),就有一种简单的方法。

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

安装 pip 的步骤。

    所以让我们安装easy_install,

    sudo yum install python-setuptools python-setuptools-devel

    现在让我们使用 easy_install 进行 pip,

    sudo easy_install pip

太好了。现在你有了 pip :)

【讨论】:

【参考方案9】:

找出你安装的python3的版本:

yum search pip

然后安装最佳匹配。使用 reqoquery 查找结果 pip3.e.g 的名称

repoquery -l python36u-pip

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

【讨论】:

【参考方案10】:

在 CentOS 7 上,pip 版本为 pip3.4,位于此处:

/usr/local/bin/pip3.4

【讨论】:

/usr/local/bin 中的文件不太可能被 RHEL/CentOS 打包。你能成功执行“rpm -qf /usr/local/bin/pip3.4”吗?如果可行,输出中的“rpm -qi ”...谁是打包者?

以上是关于如何在 CentOS 7 中安装 pip?的主要内容,如果未能解决你的问题,请参考以下文章

在 CentOs 中安装 Python3 和 pip2

如何在虚拟机中安装CentOS 7系统

如何在CentOS 7中安装Subversion

如何在新的 python 安装中安装 pip

如何在VMware虚拟机中安装CentOS6.7系统(上篇)

如何在 Apache 服务 CentOS 7 中安装模块 libphp5.so