【问题标题】:How to install pip in CentOS 7?如何在 CentOS 7 中安装 pip?
【发布时间】: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?

【问题讨论】:

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

标签: pip python-3.4 centos7


【解决方案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 的步骤。

    1. 所以让我们安装easy_install,

      sudo yum install python-setuptools python-setuptools-devel

    2. 现在让我们使用 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 ”...谁是打包者?
      猜你喜欢
      • 2021-06-23
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      相关资源
      最近更新 更多