在RHEL上安装Python 3

时间:2011-11-10 22:21:44

标签: python python-3.x rhel

我正在尝试使用以下步骤在RHEL上安装python3:

yum search python3

返回了No matches found for: python3

其次是:

yum search python

搜索结果中没有一个包含python3。我接下来应该尝试什么?

19 个答案:

答案 0 :(得分:211)

从RPM安装通常更好,因为:

  • 您可以安装卸载(正确)python3。
  • 安装时间更快。如果您在具有多个VM的云环境中工作,则无法在每个VM上编译python3。

解决方案1:Red Hat& EPEL资料库

Red Hat通过 EPEL 存储库添加了

  • 适用于CentOS 6的Python 3.4
  • 适用于CentOS 7的Python 3.6

[EPEL]如何在CentOS 6上安装Python 3.4

sudo yum install -y epel-release
sudo yum install -y python34

# Install pip3
sudo yum install -y python34-setuptools  # install easy_install-3.4
sudo easy_install-3.4 pip

您可以使用pyvenv

创建 virtualenv
pyvenv /tmp/foo

[EPEL]如何在CentOS 7上安装Python 3.6

使用CentOS7,pip3.6作为包提供:)

sudo yum install -y epel-release
sudo yum install -y python36 python36-pip

您可以使用pyvenv

创建 virtualenv
python3.6 -m venv /tmp/foo

如果您使用pyvenv脚本,则会收到警告:

$ pyvenv-3.6 /tmp/foo
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`

解决方案2:IUS社区存储库

IUS社区为RHEL& amp;提供了一些最新的软件包。 CentOS的即可。背后的人来自Rackspace,所以我认为他们非常值得信赖......

https://ius.io/

在这里为您检查正确的回购:

https://ius.io/GettingStarted/

[IUS]如何在CentOS 6上安装Python 3.6

sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm
sudo yum install -y python36u python36u-pip

您可以使用pyvenv

创建 virtualenv
python3.6 -m venv /tmp/foo

[IUS]如何在CentOS 7上安装Python 3.6

sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install -y python36u python36u-pip

您可以使用pyvenv

创建 virtualenv
python3.6 -m venv /tmp/foo

答案 1 :(得分:160)

手动安装很容易:

  1. 下载(Python.org上可能有更新版本):

    $ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
    
  2. 解压

    $ tar xf Python-3.* 
    $ cd Python-3.*
    
  3. 准备编译

    $ ./configure
    
  4. 构建

    $ make
    
  5. 安装

    $ make install
    

    或者,如果您不想覆盖python可执行文件(更安全,至少在某些发行版yum需要python为2.x,例如对于RHEL6) - 您可以使用python3.*

    altinstall作为并发实例安装到系统默认值
    $ make altinstall
    
  6. 现在,如果您想要一个替代安装目录,可以将--prefix传递给configure命令。

    示例:要在/ opt / local中“安装”Python,只需添加--prefix=/opt/local即可。

    make install步骤之后:为了使用新的Python安装,可能仍然需要将[prefix] / bin添加到$PATH和[prefix] / lib至$LD_LIBRARY_PATH(取决于您传递的--prefix

答案 2 :(得分:30)

除了gecco的回答,我还会改变第3步:

./configure

为:

./configure --prefix=/opt/python3

然后在安装后你还可以:

# ln -s /opt/python3/bin/python3 /usr/bin/python3

确保安装不会与使用yum安装的python冲突。

见我在互联网上找到的解释:

http://www.hosting.com/support/linux/installing-python-3-on-centosredhat-5x-from-source

答案 3 :(得分:9)

您可以从中下载RHEL6 / CentOS6的源RPM和二进制RPM here

这是最新的Fedora开发的后端 源rpm转换为RHEL6 / CentOS6

答案 4 :(得分:9)

使用SCL回购。

sudo sh -c 'wget -qO- http://people.redhat.com/bkabrda/scl_python33.repo >> /etc/yum.repos.d/scl.repo'
sudo yum install python33
scl enable python27

(每次要使用python27而不是系统默认值时,都必须运行最后一个命令。)

答案 5 :(得分:9)

与Python 2.7和3.3一起,Red Hat Software Collections现在包含Python 3.4 - 所有这些都在RHEL 6和7上工作。

RHSCL 2.0文档位于https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

在developerblog.redhat.com上发表了大量文章。

修改

按照instructions在RHEL 6/7或CentOS 6/7上安装Python 3.4:

# 1. Install the Software Collections tools:
yum install scl-utils

# 2. Download a package with repository for your system.
#  (See the Yum Repositories on external link. For RHEL/CentOS 6:)
wget https://www.softwarecollections.org/en/scls/rhscl/rh-python34/epel-6-x86_64/download/rhscl-rh-python34-epel-6-x86_64.noarch.rpm
#  or for RHEL/CentOS 7
wget https://www.softwarecollections.org/en/scls/rhscl/rh-python34/epel-7-x86_64/download/rhscl-rh-python34-epel-7-x86_64.noarch.rpm

# 3. Install the repo package (on RHEL you will need to enable optional channel first):
yum install rhscl-rh-python34-*.noarch.rpm

# 4. Install the collection:
yum install rh-python34

# 5. Start using software collections:
scl enable rh-python34 bash

答案 6 :(得分:8)

Python3最近作为Python34添加到EPEL7中。

目前正在努力制定有关如何在EPEL7中打包Python3的包装指南。

https://bugzilla.redhat.com/show_bug.cgi?id=1219411
https://lists.fedoraproject.org/pipermail/python-devel/2015-July/000721.html

答案 7 :(得分:5)

我看到所有答案都是要求从代码编译python3或安装二进制RPM软件包。这是启用EPEL(企业Linux的额外软件包)然后使用yum安装python的另一个答案。 RHEL 7.5(Maipo)的步骤

yum install wget –y
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm –ivh epel-*.rpm
yum install python36

另请参见link

答案 8 :(得分:5)

我在使用python 2.7时遇到了同样的问题。按照以下步骤成功升级到3.6。 你也可以尝试这个 -

  1. 在升级版本之前看到的是2.x

    python --version
    Python 2.7.5
    
  2. 使用以下命令将python升级到3.x版本 -

    yum install python3x

    x 替换为您想要的版本号。

    即。用于安装python 3.6 execute

    yum install python36
    
  3. 之后如果您想将此python设置为默认版本,则在 bashrc 文件中添加

    vi~ / .bashrc

    alias python='python3.6'
    
  4. 执行bash命令以应用设置

    bash 
    
  5. 现在您可以看到以下版本

    python --version
    Python 3.6.3
    

答案 9 :(得分:4)

如果您在RHEL上并需要Red Hat支持的Python,请使用Red Hat软件集合(RHSCL)。 Red Hat不支持EPEL和IUS软件包。上面的许多答案也指向CentOS软件集合。虽然可以安装它们,但它们不是Red Hat支持的RHEL软件包。

此外,票数最高的答案也提供了不好的建议-在RHEL上,您不想更改/usr/bin/python/usr/bin/python2,因为您可能会破坏yum和其他RHEL管理工具。看一下/bin/yum,它是一个以#!/usr/bin/python开头的Python脚本。如果您从源代码编译Python,请不要以make install作为root用户。这将覆盖/usr/bin/python。如果您中断yum,则可能很难恢复系统。

有关更多信息,请参见How to install Python 3, pip, venv, virtualenv, and pipenv on RHEL上的developers.redhat.com。它涵盖了从RHSCL安装和使用Python 3,使用Python虚拟环境以及使用软件集合和在RHEL上使用Python的许多技巧。

简而言之,要通过Red Hat Software Collections安装Python 3.6:

$ su -
# subscription-manager repos --enable rhel-7-server-optional-rpms \
   --enable rhel-server-rhscl-7-rpms
# yum -y install @development
# yum -y install rh-python36

# yum -y install rh-python36-numpy \
   rh-python36-scipy \ 
   rh-python36-python-tools \
   rh-python36-python-six

要使用软件集合,您必须启用它:

scl enable rh-python36 bash

但是,如果要永久启用Python 3,可以将以下内容添加到〜/ .bashrc中,然后注销并再次登录。现在,Python 3永久存在。

# Add RHSCL Python 3 to my login environment
source scl_source enable rh-python36

注意:完成此操作后,现在输入python将为您提供Python 3.6而不是Python 2.7。

有关所有这些信息和更多详细信息,请参见上面的文章。

答案 10 :(得分:4)

Software Collections使用Python 3.5的三个步骤:

sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash

请注意,最后一个命令不需要sudo。现在我们可以看到python 3是当前shell的默认值:

python --version
Python 3.5.1

如果您希望将Python 2作为当前shell的默认值,则只需跳过上一个命令。

现在让我们说你的Python 3脚本会给你一个像/usr/bin/env: python3: No such file or directory这样的错误。这是因为安装通常是在不寻常的路径上进行的:

/opt/rh/rh-python35/root/bin/python3

以上通常是符号链接。如果您希望在启动时为所有用户自动将python3添加到$PATH,则执行此操作的一种方法是添加如下文件:

sudo vim /etc/profile.d/rh-python35.sh

会有类似的内容:

#!/bin/bash

PATH=$PATH:/opt/rh/rh-python35/root/bin/

现在重启后,如果我们这样做

python3 --version

它应该工作。一个例外是自动生成的用户,例如" jenkins"在Jenkins服务器中没有shell。在这种情况下,在脚本中手动添加$PATH路径将是一种方法。

最后,如果您使用sudo pip3安装软件包,但它告诉您无法找到 pip3 ,则可能是您有 secure_path < / em>在 / etc / sudoers 中。使用sudo visudo进行检查应该确认。要在运行命令时暂时使用标准 PATH ,例如:

sudo env "PATH=$PATH" pip3 --version

有关详细信息,请参阅this问题。

注意:软件集合中有一个较新的Python 3.6,但我目前不推荐它,因为我在尝试安装Pycurl时遇到了很大的麻烦。对于Python 3.5而言,这不是一个问题,因为我刚开始sudo yum install sclo-python35-python-pycurl开箱即用。

答案 11 :(得分:3)

以下是我安装Python3的步骤:

yum install wget
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz  
sudo tar xvf Python-3.*   
cd Python-3.* 
sudo ./configure --prefix=/opt/python3    
sudo make   
sudo make install   
sudo ln -s /opt/python3/bin/python3 /usr/bin/python3

$ /usr/bin/python3    
Python 3.6.0

答案 12 :(得分:3)

如果您需要官方RHEL软件包,可以使用RHSCL(红帽软件集合)

更多详情:

您必须有权访问红帽客户门户才能阅读完整的文章。

答案 13 :(得分:1)

对于Amazon Linux上的RHEL,使用python3我必须这样做:

  

sudo yum install python34-devel

答案 14 :(得分:1)

yum install python34.x86_64如果您安装了epel-releasethis answer会解释如何操作,并且我确认它在RHEL 7.3

上有效,则可以正常工作
$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)

$ type python3
python3 is hashed (/usr/bin/python3)

答案 15 :(得分:1)

当SCL不可用时(根据Joys输入)完全工作36

yum install wget –y
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm –ivh epel-*.rpm
yum install python36

sudo yum install python34-setuptools
sudo mkdir /usr/local/lib/python3.6
sudo mkdir /usr/local/lib/python3.6/site-packages

sudo easy_install-3.6 pip

最后激活环境...

pyvenv-3.6 py3
source py3/bin/activate

然后是python3

答案 16 :(得分:0)

您可以安装miniconda(https://conda.io/miniconda.html)。不仅是python 3.7,而且安装非常简单明了。

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O
sudo yum install bzip2
bash Miniconda3-latest-Linux-x86_64.sh

您必须接受许可协议,并在交互模式下选择一些选项(接受默认值)。 我相信它也可以以某种方式静默安装。

答案 17 :(得分:0)

对于使用AWS EC2 RHEL 7.5的用户,(使用sudo )启用必需的存储库

yum-config-manager --enable rhui-REGION-rhel-server-optional
yum-config-manager --enable rhui-REGION-rhel-server-rhscl

安装Python 3.6

yum install rh-python36

安装其他依赖项

yum install rh-python36-numpy  rh-python36-scipy  rh-python36-python-tools  rh-python36-python-six

答案 18 :(得分:0)

从RHEL 8开始,您可以直接从官方存储库安装python3:

$ podman run --rm -ti ubi8 bash
[root@453fc5c55104 /]# yum install python3                                                                                                                                                    
Updating Subscription Management repositories.                                                                                                                                                
Unable to read consumer identity                                                                                                                                                              
Subscription Manager is operating in container mode.                                                                                                                                          
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.  

...

Installed:
  platform-python-pip-9.0.3-16.el8.noarch
  python3-pip-9.0.3-16.el8.noarch
  python3-setuptools-39.2.0-5.el8.noarch
  python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64      

Complete!

您甚至可以获得python 3.8:

[root@453fc5c55104 /]# yum install python38
Installed:
  python38-3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
  python38-libs-3.8.0-6.module+el8.2.0+5978+503155c0.x86_64                                       
  python38-pip-19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch                                  
  python38-pip-wheel-19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch                                 
  python38-setuptools-41.6.0-4.module+el8.2.0+5978+503155c0.noarch                           
  python38-setuptools-wheel-41.6.0-4.module+el8.2.0+5978+503155c0.noarch                          

Complete!