在RHEL上安装Python 3

问题描述 投票:105回答:17

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

yum search python3

哪个返回No matches found for: python3

其次是:

yum search python

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

python python-3.x rhel
17个回答
163
投票

手动安装很容易:

  1. 下载(qazxsw poi上可能有新版本): qazxsw poi
  2. 拉开拉链 Python.org
  3. 准备编译 $ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
  4. 建立 $ tar xf Python-3.* $ cd Python-3.*
  5. 安装 $ ./configure 或者,如果您不想覆盖$ make 可执行文件(更安全,至少在某些发行版$ make install 需要python为2.x,例如RHEL6) - 您可以使用yumpython作为并发实例安装到系统默认值: python3.*

现在,如果您想要一个替代安装目录,可以将altinstall传递给$ make altinstall command。

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

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


4
投票

alias python='python3.6' 使用Python 3.5的三个步骤:

bash 

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

python --version
Python 3.6.3

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

现在让我们说你的Python 3脚本给你一个像Software Collections这样的错误。那是因为安装通常是在不寻常的路径上完成的:

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

以上通常是符号链接。如果你想在启动时为所有用户自动将python --version Python 3.5.1 添加到/usr/bin/env: python3: No such file or directory,一种方法是添加一个文件,如:

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

哪个会有类似的东西:

python3

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

$PATH

它应该工作。一个例外是Jenkins服务器中没有shell的自动生成的用户,如“jenkins”。在这种情况下,在脚本中手动添加sudo vim /etc/profile.d/rh-python35.sh 的路径将是一种方法。

最后,如果您使用#!/bin/bash PATH=$PATH:/opt/rh/rh-python35/root/bin/ 来安装软件包,但它告诉您无法找到pip3,则可能是您在/ etc / sudoers中有一个secure_path。用python3 --version 检查应该确认。要在运行命令时临时使用标准PATH,例如:

$PATH

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

注意:有一个较新的Python 3.6 by Software Collections,但我现在不推荐它,因为我有很大的麻烦试图安装Pycurl。对于Python 3.5而言,这不是一个问题,因为我只是做了开箱即用的sudo visudo


4
投票

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

此外,最高投票的答案提供了不好的建议 - 在RHEL你不想改变sudo env "PATH=$PATH" pip3 --version this因为你可能会打破sudo yum install sclo-python35-python-pycurl和其他RHEL管理工具。看看/usr/bin/python,它是一个以/usr/bin/python2开头的Python脚本。如果从源代码编译Python,请不要以root用户身份执行yum。这将覆盖/bin/yum。如果你打破#!/usr/bin/python,很难恢复你的系统。

有关更多信息,请参阅make install上的/usr/bin/python。它包括使用Python虚拟环境从RHSCL安装和使用Python 3,以及处理软件集合和在RHEL上使用Python的一些技巧。

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

yum

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

How to install Python 3, pip, venv, virtualenv, and pipenv on RHEL

但是,如果您希望永久启用Python 3,则可以将以下内容添加到〜/ .bashrc中,然后再次注销并重新登录。现在Python 3永远在你的道路上。

developers.redhat.com

注意:一旦你这样做,输入$ 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 现在给你Python 3.6而不是Python 2.7。

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


3
投票

如果您需要官方RHEL包,可以使用RHSCL(Red Hat Software Collections)

更多细节:

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

您必须有权访问Red Hat Customer Portal才能阅读完整的文章。


3
投票

以下是我安装Python3的步骤:

python

1
投票

如果你安装了qazxsw poi,qazxsw poi工作,qazxsw poi解释如何,我确认它在Guide to Python 3.3 in RHSCL 1.1上工作

How to access and download Red Hat Software Collections (RHSCL) and/or Red Hat Developer Toolset (DTS)?

1
投票

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

sudo yum安装python34-devel


1
投票

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

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

最后激活环境......

yum install python34.x86_64

然后是python3


0
投票

你可以安装miniconda(epel-release)。这不仅仅是python 3.7,但安装非常简单明了。

this answer

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


0
投票

对于那些在AWS EC2 RHEL 7.5上工作的人,(使用sudo)启用所需的repos

RHEL 7.3

安装Python 3.6

$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)

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

安装其他依赖项

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

217
投票

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

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

Solution 1: Red Hat & EPEL repositories

Red Hat已通过EPEL存储库添加:

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

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

$LD_LIBRARY_PATH

你可以使用--prefix创建你的virtualenv:

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

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

使用CentOS7,pyvenv作为一个包提供:)

pyvenv /tmp/foo

你可以使用pip3.6创建你的virtualenv:

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

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

python3.6 -m venv /tmp/foo

Solution 2: IUS Community repositories

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

pyvenv

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

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

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

https://ius.io/

你可以使用https://ius.io/GettingStarted/创建你的virtualenv:

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

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

pyvenv

你可以使用python3.6 -m venv /tmp/foo 创建你的virtualenv:

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

30
投票

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

pyvenv

至:

python3.6 -m venv /tmp/foo

然后在安装后你还可以:

./configure

这是为了确保安装不会与安装了yum的python冲突。

请参阅我在互联网上找到的解释:

./configure --prefix=/opt/python3


9
投票

使用SCL回购。

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

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


9
投票

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

RHSCL 2.0文档位于http://www.hosting.com/support/linux/installing-python-3-on-centosredhat-5x-from-source

还有很多文章在developerblog.redhat.com上。

编辑

Follow these 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 to install Python 3.4 on RHEL 6/7 or CentOS 6/7:

https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

9
投票

您可以从qazxsw poi下载RHEL 6 / CentOS 6的源RPM和二进制RPM

这是从最新的Fedora开发源rpm到RHEL6 / CentOS6的后端


8
投票

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

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

instructions# 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
投票

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

here

另见https://bugzilla.redhat.com/show_bug.cgi?id=1219411


5
投票

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

  1. 在升级版本之前看到的是2.x. https://lists.fedoraproject.org/pipermail/python-devel/2015-July/000721.html
  2. 使用以下命令将python升级到3.x版本 - yum install python3x 将x替换为您想要的版本号。 即用于安装python 3.6执行 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
  3. 之后,如果你想将这个python设置为你的默认版本,那么在bashrc文件中添加 vi~ / .bashrc link
  4. 执行bash命令以应用设置 python --version Python 2.7.5
  5. 现在您可以看到下面的版本 yum install python36
© www.soinside.com 2019 - 2024. All rights reserved.