建议在centos7

时间:2018-05-18 10:10:58

标签: python python-3.x pip python-3.6 centos7

我很想知道在当前版本的centos7(7.5.1804)上安装pip3 for python3.6(截至今日,2018年5月)的推荐方法,How to install pip in CentOS 7?的接受答案似乎已过时这是因为:

yum search -v pip

输出(除其他外):

python2-pip.noarch : A tool for installing and managing Python 2 packages
Repo        : epel

python34-pip.noarch : A tool for installing and managing Python3 packages
Repo        : epel

python34-pip似乎比How to install pip in CentOS 7?的接受答案更简单(更新?):

  

sudo yum install python34-setuptools

     

sudo easy_install-3.4 pip

但是因为我机器上安装的python版本是2.7.5和3.6.3,为什么它是python34-pip而不是python36-pip?对于3.4+(直到当前的3.6.3),pip是否相同?

8 个答案:

答案 0 :(得分:20)

  1.   

    对于3.4 +

    ,点数是否相同

    不,不是。单个pip安装提供单个Python分发(pip2.7 / pip3.4 / pip3.5等)。

  2. 自Python 3.5以来,pip已与python发行版捆绑在一起,因此您只需运行python3.6 -m pip而不是pip

  3. Python 3.6在CentOS 7 vanilla repo中不可用。当需要在CentOS上安装新的Python时,我通常求助于IUS repo。它始终具有最新的Python版本the current one being 3.6.5。它还提供了一个通讯员pip package

    $ yum install https://centos7.iuscommunity.org/ius-release.rpm
    $ yum install python36u python36u-devel python36u-pip
    

    不幸的是,IUS doesn't offer a package for Python 3.7 yet所以如果您在CentOS 7上寻找Python 3.7,那么从源代码构建是唯一的选择。

  4. 编辑:当yum不是选项时

    您应该更喜欢this answer中描述的引导解决方案,因为这是安装pip工作的最可靠方法。

答案 1 :(得分:17)

要在CentOS 7上为python 3.6安装pip,您需要运行

$ python3.6 -m ensurepip

答案 2 :(得分:12)

在Centos 7中遵循以下命令

configmap

检查点子版本:

yum install python36
yum install python36-devel
yum install python36-setuptools
easy_install-3.6 pip

答案 3 :(得分:3)

由于某些原因,pip未捆绑在python 3.6的EPEL版本中。因此,我想会有很多人(例如我)找到此页面。

$ sudo yum install -y python36
...
$ python36 -m pip
/usr/bin/python36: No module named pip

因此,在这种情况下,setuptools软件包是最简单的解决方案。

$ sudo yum install python36-setuptools
$ sudo easy_install-3.6 pip
...
$ python36 -m pip --version
pip 18.0 from /usr/local/lib/python3.6/site-packages/pip-18.0-py3.6.egg/pip (python 3.6)

答案 4 :(得分:1)

尝试一下::

sudo yum update
sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

完美地为我工作。

答案 5 :(得分:1)

如果您看到pip3链接到python2路径:

  

$ pip3 -V

     

/usr/lib/python2.7/site-packages/pip(python 2.7)中的pip 8.1.2

您可能会得到:

  

$ pip3 install-升级pip

     

TypeError:parse()得到了意外的关键字参数'transport_encoding'

然后尝试使用 hash -r 清除命令缓存。这对我有用:

# Install Python 3:
sudo yum install python36 -y

# Install & Upgrade pip3
sudo python36 -m pip install --upgrade pip

# Validate pip3 installation:
sudo python3.6 -m ensurepip
#  Successfully installed pip-10.0.1 setuptools-39.0.1

# Clear commands cache
hash -r
# might be required if getting in bash: /usr/bin/pip3: No such file or directory)

pip3 -V
# pip 19.0.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

which pip3
# /usr/local/bin/pip3

pip2 -V
# pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

which pip2
# /usr/local/bin/pip2

# Install your Python3 module:
sudo /usr/local/bin/pip3 install {required module for python3}

答案 6 :(得分:1)

当我尝试通过内置的centos7 python 2.7.5版本安装python36时出现此错误:

Transaction check error:
  file /etc/rpm/macros.python from install of python-rpm-macros-3-32.el7.noarch conflicts with file from package python-devel-2.7.5-80.el7_6.x86_64

我用以下方法修复了它:

yum install python36
yum update python-devel
yum install python36-devel
easy_install-3.6 pip

答案 7 :(得分:0)

EPEL中现在有一个python36-pip包。

首先,确保EPEL可用并安装epel-release(如果缺少)(此命令在全新系统上有效; ymmv取决于Yum存储库的特定配置):

if ! { yum makecache fast >/dev/null 2>&1 && yum --cacheonly repolist enabled | grep -qE '^epel\/' ; }; then
  yum install --assumeyes epel-release
fi

安装python36-pip还将安装python36python36-libspython36-setuptools

yum install --assumeyes python36-pip

您现在可以验证版本(是的,它很旧,但是它来自EPEL):

$ pip3 --version
pip 8.1.2 from /usr/lib/python3.6/site-packages (python 3.6)

如果您不想偏离python36-pip软件包提供的文件,并且不想看到有关点子变旧的警告,请参见https://stackoverflow.com/a/46288945/534275,以使消息静默。