RHELへのPython 3のインストール


128

次の手順でRHELにpython3をインストールしようとしています。

yum search python3

戻ってきた No matches found for: python3

に続く:

yum search python

どの検索結果にもpython3は含まれていませんでした。次に何を試したらいいですか?


RHELにはまだPython 3が含まれていないと思います。Fedora用にビルドされたRPMをインストールできる場合があります:admin.fedoraproject.org/pkgdb/acls/name/python3
Thomas K

また、常にソースからインストールすることもできます。
Dougal

ただ、ここではPython 3.4用EPEL審査要求に注意:bugzilla.redhat.com/show_bug.cgi?id=1219411はそれが解決されると、I(または他の誰か)がEPELの詳細と新しい答えを投稿します。
ncoghlan 2015

2
コミュニティのyumリポジトリを使用したSamuel Phanの回答は、Samuelが述べた理由から、ソースから構築するよりも優れています。あなたは彼への受け入れられた答えを変えるべきです。
エドワードネッドハーヴェイ

回答:


186

手動でインストールするのは簡単です:

  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. ビルド

    $ make
  5. インストール

    $ make install

    または、python実行可能ファイルを上書きしたくない場合(少なくとも、一部のディストリビューションでyumpython、RHEL6のように2.xである必要があるため、より安全です)-をpython3.*使用して、システムのデフォルトに同時インスタンスとしてインストールできますaltinstall

    $ make altinstall

ここで、代替インストールディレクトリが必要な場合は--prefixconfigureコマンドに渡すことができます。

例:/ opt / localにPythonを「インストール」する場合は、を追加するだけ--prefix=/opt/localです。

make install手順の後:新しいPythonインストールを使用するために、[prefix] / binをに追加し、$PATH[prefix] / libをに追加$LD_LIBRARY_PATHする--prefix必要があります(渡したに応じて)


9
使用しました:bzip2 -cd Python-3.2.2.tar.bz2 | tar xvf-これもより簡単な可能性です:tar jxvf Python-3.2.2.tar.bz2
rajadhiraja

1
bz2 tarを使用すると、301(移動)が404に移動しました。私はそれを.tgzに変更し、うまくダウンロードしました。
カレブ

2
そして私にとって、結果のバイナリはpython3.5という名前でここにあります:[root @ machine python3.5]#which python3.5 /usr/local/bin/python3.5したがって、この名前のシンボリックリンクを追加することができますpython3便宜のために
ウィル

6
あなたが得る場合no acceptable C compiler found in $PATH when installing pythonにreffer http://stackoverflow.com/questions/19816275/no-acceptable-c-compiler-found-in-path-when-installing-python
BNU

3
./configure --with-ensurepip=install有効pip3にするかpip3、コンパイル後にインストールしません。
Searene 2016年

238

RPMからのインストールは、次の理由により、一般的に優れています。

  • python3を(適切に)インストールおよびアンインストールできます。
  • インストール時間は、道より高速です。複数のVMがあるクラウド環境で作業している場合、各VMでpython3をコンパイルすることはできません。

ソリューション1:Red HatとEPELリポジトリ

Red HatはEPELリポジトリを通じて追加しました:

  • CentOS 6のPython 3.4
  • CentOS 7のPython 3.6

[EPEL] CentOS 6に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

あなたはvirtualenvを作成することができますpyvenv

pyvenv /tmp/foo

[EPEL] CentOS 7にPython 3.6をインストールする方法

CentOS7ではpip3.6、パッケージとして提供されます:)

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

あなたはvirtualenvを作成することができますpyvenv

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`

解決策2:IUSコミュニティリポジトリ

IUSコミュニティは、RHELおよびCentOS用の最新のパッケージをいくつか提供しています。後ろの人はラックスペース出身なので、かなり信頼できると思います...

https://ius.io/

ここで正しいリポジトリを確認してください:

https://ius.io/setup

[IUS] CentOS 6にPython 3.6をインストールする方法

sudo yum install -y https://repo.ius.io/ius-release-el6.rpm
sudo yum install -y python36u python36u-pip

あなたはvirtualenvを作成することができますpyvenv

python3.6 -m venv /tmp/foo

[IUS] Python 3.6をCentOS 7にインストールする方法

sudo yum install -y https://repo.ius.io/ius-release-el7.rpm
sudo yum install -y python36u python36u-pip

あなたはvirtualenvを作成することができますpyvenv

python3.6 -m venv /tmp/foo

1
IUSリリースパッケージのURLを修正しました。彼らはバージョンを更新しました、それだけです。彼らがパッケージを再度更新する場合は、WebページからRPMへのリンクを確認できます。
Samuel Phan

1
私が言ったように、あなたの答えのリンクは印刷不可能なユニコード文字を含んでいます。リンクをコピーして貼り付けると、VIMに次のように表示され ます。Unicodehttps://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/iu<200c><200b>s-release-1.0-14.iu‌​s.centos6.noarch.rpm 文字は次のとおりです:fileformat.info/info/unicode/char/200c/index.htm元の回答のURLは機能しますが、テストしましたそれ。
Samuel Phan 2015

1
IUSコミュニティリポジトリはソフトウェアコレクションほど信頼性が低いと言われているので、Mike Gueretteの CentOS 6での回答
bformet

2
このソリューションを使用して、python34にpipをどのようにインストールしますか?
ロイック・

1
非常に良い質問です。コメントを追加しました。それは私が見つけた最高のものです。RPMベースのインストールに固執する場合は、CentOS 7のIUSリポジトリを使用する必要があります。これらはを提供しpython34u-pipます。
Samuel Phan、2015年

31

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


16
なんで/opt/usr/local具体的にはこの目的のために存在し、そこ./configureには明示的--prefixにそれを配置しません。
カババンガ2013

@cababunga私が書いたように、私は指定されたサイトからチュートリアルを読むことに影響を受けています。それにもかかわらず、上記の方法でpythonをインストールすることは使用可能かもしれません-それをアンインストールする方がはるかに簡単です(makeのアンインストールターゲットが提供されていないようです)。また、/ optの下の指定された個別のディレクトリにpython3のさまざまなバージョンを簡単にインストールし、使用またはテストするバージョンを手動で設定することもできます。
rsc

binariesフォルダーを含むようにPATHを設定することもできます。私にとってそれはexport PATH=$PATH:/opt/python3/bin
カレブ

10

Red Hat Software Collectionsには、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

//、これは特別なシェルを有効にする必要がありますか?virtualenvsと組み合わせると、お尻が痛くなることがわかります。
Nathan Basanese

//、なぜこれが必要なのscl enable rh-python34 bashですか?これを後で使用する意味は何ですか?
Nathan Basanese

RedHat 6にpython3.5をインストールする方法はありますか?試しwget https://www.softwarecollections.org/en/scls/rhscl/rh-python35/epel-6-x86_64/download/rhscl-rh-python35-epel-6-x86_64.noarch.rpmましたが見つかりませんでした。
Searene 2016年

コレクションを取得するには購読する必要がありますか?それはいくらですか?
Noumenon 2017

1
追加費用はかかりません。RH Software Collectionsは、すべてのRHEL開発者サブスクリプションおよびほとんどのRHELサブスクリプションの一部です。無料のRHEL開発サブスクリプションは、developers.redhat.com / downloadから入手できます。これらは実際のRHELサブスクリプションであり、製品版のエンタイトルメントとすべて同じですが、開発目的です。
Mike Guerette 2017

9

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を使用するたびに実行する必要があります。)


4
redhat docsを読んだ後、私がしなければならないのはどちらかでした。scl enable python33 bashpython 3を有効にするかscl enable python33 'python hello.py'、現在のシェルでpython 3を使用してpythonファイルを実行する新しいシェルを起動する
スナック

//、Python 3.4のインストールを許可するより一般的な命令は何ですか?
Nathan Basanese 2015

RHELを使用している場合は、Red Hat Softwareコレクションを使用しますsubscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-server-rhscl-7-rpms。その後、できyum install rh-python36ます。詳しくは、RHELにPython 3をインストールする方法をご覧ください。
Rob T.

9

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を参照してください


//、ホールドアップとは何ですか?ピップは簡単な方法のようです。
Nathan Basanese 2015

9

RHEL6 / CentOS6のソースRPMおよびバイナリRPMは、こちらからダウンロードできます。

これは、最新のFedora開発ソースrpmからRHEL6 / CentOS6へのバックポートです


それは素晴らしいことです。努力してくれてありがとう、フロリアン。createrepoこれらのディレクトリで実行すると、一部のユーザーにとってさらに便利になります。
カババンガ2013

なんとほっとしました。rpmは完全にインストールされています。
lyomi 2014年

//、そのリンクからリポジトリを作成するにはどうすればよいですか?
Nathan Basanese

//、これが機能することを確認できます。上のホールド、私は同じようにURLことを使用した迅速な何かを手早くbaseurl0bin.net/paste/...
ネイサンBasanese

6

すべての答えは、python3をコードからコンパイルするか、バイナリRPMパッケージをインストールするかのいずれかであると考えています。EPEL(エンタープライズLinuxの追加パッケージ)を有効にしてから、yumを使用してpythonをインストールする別の回答を次に示します。RHEL 7.5(Maipo)の手順

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

リンクも参照


SCLを介した公式の方法が機能しない場合は特に、うまく機能します。次に、pip3のインストールを補完します。– sudo yum install python34-setuptools
OSP

5

私はpython 2.7を使用して同じ問題を抱えていました。以下の手順に従って、3.6に正常にアップグレードしてください。これも試すことができます

  1. バージョンが2.xにアップグレードする前に参照してください

    python --version
    Python 2.7.5
  2. 以下のコマンドを使用して、Pythonを3.xバージョンにアップグレードします。

    yum install python3x

    取り替える xを必要なバージョン番号にます。

    つまり、Python 3.6をインストールするために実行します

    yum install python36
  3. その後、このpythonをデフォルトバージョンに設定する場合は、 bashrcファイルに次を追加します。

    vi〜/ .bashrc

    alias python='python3.6'
  4. bashコマンドを実行して設定を適用する

    bash 
  5. 今、あなたは以下のバージョンを見ることができます

    python --version
    Python 3.6.3

この回答は、EPELまたはIUSのいずれかのサードパーティのリポジトリを追加しないと機能しません。RHELにはpython36パッケージはありません。RHSCLパッケージはrh-python36です。
ロブ

4

ソフトウェアコレクションで Python 3.5を使用する3つのステップ:

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

最後のコマンドではsudoは必要ないことに注意してください。これで、現在のシェルのデフォルトがpython 3であることがわかります。

python --version
Python 3.5.1

現在のシェルのデフォルトとしてPython 2を使用する場合は、最後のコマンドをスキップしてください。

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

うまくいくはずです。1つの例外は、シェルを持たないJenkinsサーバーで「jenkins」のような自動生成されたユーザーです。その場合、手動$PATHでスクリプトにパスを追加するのが1つの方法です。

あなたが使用している場合最後に、sudo pip3パッケージをインストールするために、それがあることを示していますPIP3を見つけることができない、それはあなたが持っている可能性がありSECURE_PATHは/ etc / sudoersファイルを。で確認すると、それsudo visudoが確認されます。コマンドの実行時に標準のPATHを一時的に使用するには、たとえば次のようにします。

sudo env "PATH=$PATH" pip3 --version

詳細については、この質問を参照してください。

:Software Collectionsの新しいPython 3.6がありますが、Pycurlをインストールしようとする大きな頭痛の種があったため、現時点ではお勧めしません。Python 3.5の場合、問題なく動作しました。問題なく動作しましたsudo yum install sclo-python35-python-pycurl


No package centos-release-scl available.
Joe

CentOSリポジトリで利用できます。
Nagev

4

RHELを使用していて、Red HatでサポートされているPythonが必要な場合は、Red Hat Softwareコレクション(RHSCL)を使用してください。EPELおよびIUSパッケージはRed Hatではサポートされていません。また、上記の回答の多くは、CentOSソフトウェアコレクションを指しています。これらはインストールできますが、RHEL用のRed Hatサポートパッケージではありません。

また、トップ投票の答えは悪いアドバイスを与えます-RHELでは変更したくないでしょう/usr/bin/python/usr/bin/python2なぜならあなたはyum他のRHEL管理ツールを壊す可能性があるからです。を見てください/bin/yum。これはで始まるPythonスクリプトです#!/usr/bin/python。ソースからPythonをコンパイルする場合は、make installルートとしてa を実行しないでください。それは上書きされます/usr/bin/python。壊れたらyumた、システムを復元するのは困難です。

詳細については、Pythonの3、ピップ、venv、virtualenvの、およびRHEL上のpipenvインストール方法developers.redhat.comを。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 2.7ではなくPython 3.6が表示されます。

これらすべてと詳細については、上記の記事を参照してください。


3

公式のRHELパッケージが必要な場合は、RHSCL(Red Hat Software Collections)を使用できます。

詳細:

記事全文を読むには、Red Hatカスタマーポータルにアクセスする必要があります。


//、賛成されました。このためにRHSCLを使用するために何を行うのかを要約してもかまいませんか?結局、これは質疑応答サイトです。
Nathan Basanese 2015

1
記事RHEL上のPython 3をインストールする方法は、ソフトウェアのコレクションとRHSCLs、パイソン、および仮想環境での作業のための多くのヒントを経由してのPython 3.6のための最新の手順があります。
Rob T.

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

2
多くの-devel依存関係(SSL、bzipなど)をインストールせずにソースからビルドすると、共有オブジェクトに依存するいくつかのモジュールが欠落します。rpmベースのディストリビューション(RHSCL、EPEL、またはIUS)の1つをインストールすることをお勧めします
Rob T.

1

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)


1

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


0

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

ライセンス契約に同意し、インタラクティブモードでいくつかのオプションを選択する必要があります(デフォルトを受け入れます)。なんとなくサイレントインストールもできると思います。


python後で実際のコマンドを見つけることができませんでした、ラップされていますか?
無限

0

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.