我正在尝试使用以下步骤在 RHEL 上安装 python3:
yum search python3
哪个返回 No matches found for: python3
其次是:
yum search python
没有一个搜索结果包含 python3。接下来我应该尝试什么?
我正在尝试使用以下步骤在 RHEL 上安装 python3:
yum search python3
哪个返回 No matches found for: python3
其次是:
yum search python
没有一个搜索结果包含 python3。接下来我应该尝试什么?
从 RPM 安装通常更好,因为:
Red Hat 通过EPEL存储库添加了:
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
您可以使用以下方法创建您的virtualenvpyvenv
:
pyvenv /tmp/foo
在 CentOS7pip3.6
中,作为一个软件包提供 :)
sudo yum install -y epel-release
sudo yum install -y python36 python36-pip
您可以使用以下方法创建您的virtualenvpyvenv
:
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`
IUS 社区为 RHEL 和 CentOS 提供了一些最新的软件包。后面的人都是Rackspace的,所以我觉得他们还是挺靠谱的……
在此处为您检查正确的存储库:
sudo yum install -y https://repo.ius.io/ius-release-el6.rpm
sudo yum install -y python36u python36u-pip
您可以使用以下方法创建您的virtualenvpyvenv
:
python3.6 -m venv /tmp/foo
sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
sudo yum install -y python36u python36u-pip
您可以使用以下方法创建您的virtualenvpyvenv
:
python3.6 -m venv /tmp/foo
手动安装python很容易(即从源代码构建):
下载( Python.org上可能有更新的版本):
$ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
解压
$ tar xf Python-3.*
$ cd Python-3.*
准备编译
$ ./configure
建造
$ make
安装
$ make install
或者,如果您不想覆盖python
可执行文件(更安全,至少在某些发行版上yum
需要python
为 2.x,例如 RHEL6) - 您可以python3.*
使用以下命令作为并发实例安装到系统默认值altinstall
:
$ make altinstall
现在如果你想要一个替代的安装目录,你可以传递--prefix
给configure
命令。
示例:对于在 /opt/local 中“安装”Python,只需添加--prefix=/opt/local
.
步骤之后make install
:为了使用新的 Python 安装,您可能仍然需要将 [prefix]/bin 添加到$PATH
[prefix]/lib 到$LD_LIBRARY_PATH
(取决于--prefix
您通过的)
除了 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
除了 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 上的大量文章。
<opinion>
使用SCL
yum 存储库可能比其他 yum 存储库更好,因为 RPM 是由 Redhat 开发/测试的(即第一方 RPM,而不是第三方)。</opinion>
编辑
# 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
rhel
我相信默认情况下,centos
版本 7 现在在 python 3.6 上您可以从这里下载 RHEL6 / CentOS6 的源 RPM 和二进制 RPM
这是从最新的 Fedora 开发源 rpm 到 RHEL6 / CentOS6 的反向移植
使用 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 而不是系统默认值时,都必须运行最后一个命令。)
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
我认为所有答案都是要求从代码编译 python3 或安装二进制 RPM 包。这是启用 EPEL(企业 Linux 的额外软件包)然后使用 yum 安装 python 的另一个答案。RHEL 7.5(迈坡)的步骤
yum install wget –y
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-XX.noarch.rpm # Verify actual RPM name by browsing dir over browser
rpm –ivh epel-*.rpm
yum install python36
另见链接
如果您使用 RHEL 并且想要 Red Hat 支持的 Python,请使用 Red Hat Software collections (RHSCL)。Red Hat 不支持 EPEL 和 IUS 软件包。上面的许多答案也指向 CentOS 软件集合。虽然您可以安装它们,但它们不是 Red Hat 支持的 RHEL 软件包。
此外,投票最多的答案给出了不好的建议 - 在 RHEL 上您不想更改/usr/bin/python
,/usr/bin/python2
因为您可能会破坏yum
其他 RHEL 管理工具。看一下/bin/yum
,它是一个以 . 开头的 Python 脚本#!/usr/bin/python
。如果从源代码编译 Python,请不要make install
以 root 身份执行。那将覆盖/usr/bin/python
. 如果你打破yum
它可能很难恢复你的系统。
有关详细信息,请参阅developer.redhat.com上的如何在 RHEL上安装 Python 3、pip、venv、virtualenv 和 pipenv。它涵盖了从 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。
有关所有这些以及更多详细信息,请参见上面的文章。
我在使用 python 2.7 时遇到了同样的问题。按照以下步骤成功升级到 3.6。你也可以试试这个——
看之前升级版本是2.x
python --version
Python 2.7.5
使用以下命令将您的 python 升级到 3.x 版本-
百胜安装python3x
将x替换为您想要的版本号。
即用于安装 python 3.6 执行
yum install python36
之后,如果您想将此 python 设置为默认版本,则在bashrc文件中添加
vi ~/.bashrc
alias python='python3.6'
执行 bash 命令以应用设置
bash
现在你可以看到下面的版本
python --version
Python 3.6.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
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”。在这种情况下,在脚本中手动添加路径$PATH
将是一种方法。
最后,如果您sudo pip3
用于安装软件包,但它告诉您找不到 pip3,则可能是您在/etc/sudoers中有一个安全路径。检查应该确认。要在运行命令时临时使用标准PATH,您可以执行以下操作,例如:sudo visudo
sudo env "PATH=$PATH" pip3 --version
有关更多详细信息,请参阅此问题。
注意:Software Collections 有一个更新的 Python 3.6,但我现在不推荐它,因为我在尝试安装 Pycurl 时非常头疼。对于 Python 3.5,这不是问题,因为我刚刚做sudo yum install sclo-python35-python-pycurl
了开箱即用的工作。
如果您想要官方 RHEL 软件包,您可以使用 RHSCL(Red Hat Software Collections)
更多细节:
您必须有权访问红帽客户门户才能阅读全文。
yum install python34.x86_64
如果您已epel-release
安装,则可以使用,此答案说明了如何安装,并且我确认它可以正常工作RHEL 7.3
$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)
$ type python3
python3 is hashed (/usr/bin/python3)
对于 Amazon Linux 上的 RHEL,我必须使用 python3:
sudo yum install python34-devel
SCL 不可用时完全工作 36(基于 Joys 输入)
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
您可以安装 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
您必须接受许可协议并在交互模式下选择一些选项(接受默认值)。我相信它也可以以某种方式静默安装。
对于那些在 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
从 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!