在RHEL上安装python3时出现问题

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

yum search python3 

其中返回No matches found for: python3

其次是:

 yum search python 

没有任何search结果包含python3。 接下来我应该尝试什么?

手动安装很容易:

  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. build立

     $ make 
  5. 安装

     $ make install 

    或者如果你不想覆盖python可执行文件(比较安全,至less在某些发行版中需要python是2.x,比如RHEL6) – 你可以安装python3.*作为系统默认的并发实例一个altinstall

     $ make altinstall 

现在如果你想要一个替代的安装目录,你可以将--prefix传递给configure命令。

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

make install步骤之后:为了使用新的Python安装,可能还需要将$PATH和[prefix] / lib的[prefix] / bin添加到$LD_LIBRARY_PATH (具体取决于--prefix你通过的--prefix

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

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

解决scheme1:红帽和EPEL存储库

红帽已经通过EPEL存储库为CentOS 6和7添加了Python 3.4

不幸:

  • pip3没有捆绑在任何RPM中。 你需要手动安装 (见下文)。
  • pyvenv被窃听,不起作用。 你需要使用virtualenv

[EPEL]如何在CentOS 6和7上安装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 # I guess you would like to install virtualenv or virtualenvwrapper sudo pip3 install virtualenv sudo pip3 install virtualenvwrapper 

如果你想使用pyvenv ,你可以做下面的pip3在你的virtualenv中安装pip3

 pyvenv --without-pip my_env curl https://bootstrap.pypa.io/get-pip.py | my_env/bin/python 

但是,如果您想要开箱即用,则可以在.bashrc添加这个bash函数(别名):

 pyvenv() { /usr/bin/pyvenv --without-pip $@; for env in $@; do curl https://bootstrap.pypa.io/get-pip.py | "$env/bin/python"; done; } 

解决scheme2:IUS社区存储库

IUS社区为RHEL&CentOS提供了一些最新的软件包 。 后面的人是来自Rackspace,所以我认为他们是相当值得信赖的…

https://ius.io/

在这里检查正确的回购:

https://ius.io/GettingStarted/

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

 sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm sudo yum install -y python35u python35u-pip # I guess you would like to install virtualenv or virtualenvwrapper sudo pip3.5 install virtualenv sudo pip3.5 install virtualenvwrapper 

注意:如果你不想使用virtualenv你可以使用pyvenv-3.5

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

 sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm sudo yum install -y python35u python35u-pip # I guess you would like to install virtualenv or virtualenvwrapper sudo pip3.5 install virtualenv sudo pip3.5 install virtualenvwrapper 

注意:如果你不想使用virtualenv你可以使用pyvenv-3.5

除了gecco的答案,我会改变步骤3:

 ./configure 

至:

 ./configure --prefix=/opt/python3 

然后在安装之后,您还可以:

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

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

看看我在网上find的解释:

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

使用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而不是系统默认的时候,这个最后的命令将被运行。)

您可以从这里下载RHEL6 / CentOS6的源代码RPM和二进制RPM

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

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

目前正在进行(当前)努力制定关于如何在EPEL7中打包Python3的打包指南。

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

除了Python 2.7和3.3之外,红帽软件集合现在包含Python 3.4 – 所有这些工具都可以在RHEL 6和7上运行。

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

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

编辑

按照以下说明在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 

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

更多细节:

  • RHSCL 1.1中的Python 3.3指南
  • 如何访问和下载Red Hat Software Collections(RHSCL)和/或Red Hat Developer Toolset(DTS)?

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

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) 

以下是我遵循的安装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使

sudo make install

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

$ / usr / bin / python3

Python 3.6.0

软件集合使用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的默认值,那么只需跳过上一条命令即可。

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

sudo yum安装python34-devel