我正在尝试使用以下步骤在RHEL上安装python3:
yum search python3
哪个返回No matches found for: python3
其次是:
yum search python
搜索结果中没有一个包含python3。我接下来应该尝试什么?
手动安装很容易:
$ 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
为2.x,例如RHEL6) - 您可以使用yum
将python
作为并发实例安装到系统默认值:
python3.*
现在,如果您想要一个替代安装目录,可以将altinstall
传递给$ make altinstall
command。
示例:在/ opt / local中“安装”Python,只需添加--prefix
。
在configure
步骤之后:为了使用你的新Python安装,它可能是,你仍然需要将[prefix] / bin添加到--prefix=/opt/local
和[prefix] / lib到make install
(取决于你传递的$PATH
)
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
。
如果您使用的是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。
有关所有这些以及更多详细信息,请参阅上面的文章。
如果您需要官方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才能阅读完整的文章。
以下是我安装Python3的步骤:
python
如果你安装了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)?
对于Amazon Linux上的RHEL,使用python3我必须这样做:
sudo yum安装python34-devel
当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
你可以安装miniconda(epel-release
)。这不仅仅是python 3.7,但安装非常简单明了。
this answer
您必须接受许可协议并在交互模式中选择一些选项(接受默认值)。我相信它也可以以某种方式安静地安装。
对于那些在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
从RPM安装通常更好,因为:
Red Hat已通过EPEL存储库添加:
$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
使用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
IUS社区为RHEL和CentOS提供了一些最新的软件包。背后的人来自Rackspace,所以我认为他们非常值得信赖......
pyvenv
在这里为您检查正确的回购:
$ pyvenv-3.6 /tmp/foo
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`
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
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
除了gecco的回答,我还会改变第3步:
pyvenv
至:
python3.6 -m venv /tmp/foo
然后在安装后你还可以:
./configure
这是为了确保安装不会与安装了yum的python冲突。
请参阅我在互联网上找到的解释:
./configure --prefix=/opt/python3
使用SCL回购。
# ln -s /opt/python3/bin/python3 /usr/bin/python3
(每次要使用python27而不是系统默认值时,都必须运行最后一个命令。)
与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上。
编辑
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/
您可以从qazxsw poi下载RHEL 6 / CentOS 6的源RPM和二进制RPM
这是从最新的Fedora开发源rpm到RHEL6 / CentOS6的后端
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
我看到所有答案都要求从代码编译python3或安装二进制RPM包。这是启用EPEL(企业Linux的额外包)然后使用yum安装python的另一个答案。 RHEL 7.5(Maipo)的步骤
here
我使用python 2.7遇到了同样的问题。按照以下步骤成功升级到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
python --version
Python 2.7.5
yum install python36