我很想知道在当前版本的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是否相同?
答案 0 :(得分:20)
对于3.4 +
,点数是否相同
不,不是。单个pip
安装提供单个Python分发(pip2.7
/ pip3.4
/ pip3.5
等)。
自Python 3.5以来,pip
已与python发行版捆绑在一起,因此您只需运行python3.6 -m pip
而不是pip
。
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,那么从源代码构建是唯一的选择。
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
还将安装python36
,python36-libs
和python36-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,以使消息静默。