Installing Python 3 on RHEL
我尝试使用以下步骤在RHEL上安装python3:
1 | yum search python3 |
返回
然后:
1 | yum search python |
所有搜索结果都不包含python3。下一步我应该尝试什么?
从RPM安装通常更好,因为:
- 您可以安装和卸载(正确)python3。
- 安装时间快得多。如果您在具有多个虚拟机的云环境中工作,则不接受在每个虚拟机上编译python3。
解决方案1:Red Hat&epel存储库
Red Hat已通过EPEL存储库添加:
- 用于CentOS 6的python 3.4
- 用于CentOS 7的python 3.6
[epel]如何在CentOS 6上安装python 3.4
1 2 3 4 5 6 | 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 |
您可以使用
1 | pyvenv /tmp/foo |
[epel]如何在CentOS 7上安装python 3.6
在Centos7中,
1 2 | sudo yum install -y epel-release sudo yum install -y python36 python36-pip |
您可以使用
1 | python3.6 -m venv /tmp/foo |
如果使用
1 2 | $ pyvenv-3.6 /tmp/foo WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv` |
解决方案2:IUS社区存储库
ius社区为rhel¢os提供了一些最新的包。后面的人来自Rackspace,所以我觉得他们很值得信赖…
HTTPS://IU.IO/
在这里为您检查正确的回购:
https://ius.io/gettingstarted网站/
[ius]如何在CentOS 6上安装python 3.61 2 | sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm sudo yum install -y python36u python36u-pip |
您可以使用
1 | python3.6 -m venv /tmp/foo |
[ius]如何在CentOS 7上安装python 3.6
1 2 | sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm sudo yum install -y python36u python36u-pip |
您可以使用
1 | python3.6 -m venv /tmp/foo |
手动安装很容易:
下载(python.org上可能有更新的版本):
1 | $ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz |
解压缩
1 2 | $ tar xf Python-3.* $ cd Python-3.* |
准备编译
1 | $ ./configure |
建造
1 | $ make |
安装
1 | $ make install |
或者,如果您不想覆盖
1 | $ make altinstall |
现在,如果您想要另一个安装目录,可以将
示例:对于在/opt/local中"安装"python,只需添加
在执行
除了GECCO的回答之外,我还将第3步从:
1 | ./configure |
到:
1 | ./configure --prefix=/opt/python3 |
安装后,您还可以:
1 | # ln -s /opt/python3/bin/python3 /usr/bin/python3 |
这是为了确保安装不会与用yum安装的python冲突。
请参阅我在互联网上找到的解释:
http://www.hosting.com/support/linux/installing-python-centosredhat-5x-from-source
除了python 2.7和3.3,RedHat软件集合现在还包括python 3.4——所有的工作都在RHEL6和7上。
rhscl 2.0文档位于https://access.red hat.com/documentation/en-us/red_hat_software_collections/
还有developerblog.redhat.com上的很多文章。
编辑
按照以下说明在RHEL 6/7或CentOS 6/7上安装python 3.4:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 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 |
您可以从下载源rpms和二进制rpms for rhel6/centos6在这里
这是最新Fedora开发的一个反向端口Rhel6/Centros6的源RPM
使用SCL回购。
1 2 3 | 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(EnterpriseLinux的额外包)然后使用yum安装python的另一个答案。Rhel 7.5(maipo)的步骤
1 2 3 4 | 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 2.7时遇到了同样的问题。按照以下步骤成功升级到3.6。你也可以试试这个-
升级版本为2.x之前请参阅
1 2 | python --version Python 2.7.5 |
使用下面的命令将python升级到3.x版本-
yum安装python3x
用所需的版本号替换X。
例如,安装python 3.6时,请执行
1 | yum install python36 |
之后,如果您想为默认版本设置这个python,那么在bashrc文件中添加
VI~/BASHC
1 | alias python='python3.6' |
执行bash命令以应用设置
1 | bash |
现在您可以看到下面的版本
1 2 | python --version Python 3.6.3 |
如果您使用的是RHEL,并且想要一个支持RedHat的Python,请使用RedHat软件集合(rhscl)。Red Hat不支持EPEL和IUS包。上面的许多答案也指向CentOS软件集合。虽然您可以安装它们,但它们不是支持RHEL的RedHat软件包。
另外,最热门的答案给出了坏的建议——关于RHEL,你不想改变
有关详细信息,请参阅developers.redhat.com上的RHEL上如何安装python 3、pip、venv、virtualenv和pipenv。它包括从rhscl安装和使用python 3,使用python虚拟环境,以及一些使用软件集合和在rhel上使用python的技巧。
简而言之,要通过Red Hat软件集合安装python 3.6:
1 2 3 4 5 6 7 8 9 10 | $ 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 |
要使用软件集合,必须启用它:
1 | scl enable rh-python36 bash |
但是,如果希望永久启用python 3,可以将以下内容添加到~/.bashrc中,然后注销并重新登录。现在,python 3永远在您的路径中。
1 2 | # Add RHSCL Python 3 to my login environment source scl_source enable rh-python36 |
注意:一旦您这样做了,现在输入
有关所有这些内容和更多详细信息,请参阅上面的文章。
通过软件集合使用python 3.5的三个步骤:
1 2 3 | sudo yum install centos-release-scl sudo yum install rh-python35 scl enable rh-python35 bash |
注意,最后一个命令不需要sudo。现在我们可以看到python 3是当前shell的默认值:
1 2 | python --version Python 3.5.1 |
如果您希望将python 2作为当前shell的默认值,只需跳过最后一个命令。
现在假设您的python 3脚本提供了一个类似于
1 | /opt/rh/rh-python35/root/bin/python3 |
上面通常是一个符号链接。如果您希望在启动时为所有用户自动将
1 | sudo vim /etc/profile.d/rh-python35.sh |
它应该有如下内容:
1 2 3 | #!/bin/bash PATH=$PATH:/opt/rh/rh-python35/root/bin/ |
现在在重启之后,如果我们这样做的话
1 | python3 --version |
这应该是可行的。一个例外是自动生成的用户,比如Jenkins服务器中没有shell的"Jenkins"。在这种情况下,在脚本中手动添加到
最后,如果您使用
1 | sudo env"PATH=$PATH" pip3 --version |
有关详细信息,请参阅此问题。
注意:软件集合中有一个更新的python 3.6,但是我现在不推荐它,因为我在安装pycurl时遇到了很多麻烦。对于python 3.5来说,这不是问题,因为我刚做了一个现成的
如果您想要正式的RHEL包,可以使用rhscl(Red Hat软件集合)
更多细节:
- rhscl 1.1中的python 3.3指南
- 如何访问和下载Red Hat软件集合和/或Red Hat开发人员工具集和/或Red Hat开发人员工具集?
您必须访问Red Hat客户门户才能阅读完整的文章。
以下是我安装python3时遵循的步骤:
1 2 3 4 5 6 7 8 9 10 11 | 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 |
SCL不可用时完全工作36(基于joys输入)
1 2 3 4 5 6 7 8 9 10 | 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 |
最后激活环境…
1 2 | pyvenv-3.6 py3 source py3/bin/activate |
然后Python 3
对于Amazon Linux上的rhel,我必须使用python3:
sudo yum install python34-devel
如果安装了
1 2 3 4 5 6 | $ cat /etc/*-release NAME="Red Hat Enterprise Linux Server" VERSION="7.3 (Maipo) $ type python3 python3 is hashed (/usr/bin/python3) |
您可以安装miniconda(https://conda.io/miniconda.html)。这不仅仅是Python3.7,而且安装非常简单简单。
1 2 3 | curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O sudo yum install bzip2 bash Miniconda3-latest-Linux-x86_64.sh |
您必须接受许可协议,并在交互模式下选择一些选项(接受默认值)。我相信它也可以无声地安装。