Menginstal Python 3 di RHEL

128

Saya mencoba menginstal python3 di RHEL menggunakan langkah-langkah berikut:

yum search python3

Yang dikembalikan No matches found for: python3

Diikuti oleh:

yum search python

Tidak ada hasil pencarian yang mengandung python3. Apa yang harus saya coba selanjutnya?

Chander Shivdasani
sumber
Saya menduga RHEL belum memasukkan Python 3. Anda mungkin dapat menginstal RPM yang dibuat untuk Fedora: admin.fedoraproject.org/pkgdb/acls/name/python3
Thomas K
Anda juga selalu dapat menginstal dari sumber.
Dougal
Hanya mencatat permintaan peninjauan EPEL untuk Python 3.4 di sini: bugzilla.redhat.com/show_bug.cgi?id=1219411 Setelah itu diselesaikan, saya (atau orang lain) akan memposting jawaban baru dengan perincian EPEL.
ncoghlan
2
Jawaban Samuel Phan menggunakan repositori yum komunitas lebih baik daripada membangun dari sumber, untuk alasan yang tepat yang dinyatakan Samuel. Anda harus mengubah jawaban yang diterima untuk jawabannya.
Edward Ned Harvey

Jawaban:

186

Mudah untuk menginstalnya secara manual:

  1. Unduh (mungkin ada rilis terbaru di Python.org ):

    $ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
  2. Unzip

    $ tar xf Python-3.* 
    $ cd Python-3.*
  3. Siapkan kompilasi

    $ ./configure
  4. Membangun

    $ make
  5. Install

    $ make install

    ATAU jika Anda tidak ingin menimpa pythonexecutable (lebih aman, setidaknya pada beberapa distro yumkebutuhan pythonuntuk menjadi 2.x, seperti untuk RHEL6) - Anda dapat menginstal python3.*sebagai contoh bersamaan ke sistem default dengan altinstall:

    $ make altinstall

Sekarang jika Anda menginginkan direktori instalasi alternatif, Anda dapat meneruskan --prefixke configureperintah.

Contoh: untuk 'menginstal' Python di / opt / local, cukup tambahkan --prefix=/opt/local.

Setelah make installlangkah: Untuk menggunakan instalasi Python baru Anda, bisa jadi, Anda masih harus menambahkan [awalan] / bin ke $PATHdan [awalan] / lib ke $LD_LIBRARY_PATH(tergantung dari yang --prefixAnda lewati)

gecco
sumber
9
Anda menggunakan: bzip2 -cd Python-3.2.2.tar.bz2 | tar xvf - Ini juga kemungkinan lebih sederhana: tar jxvf Python-3.2.2.tar.bz2
rajadhiraja
1
Saya mendapat 301 (pindah) ke 404 saat menggunakan tar bz2. Saya mengubahnya ke .tgz dan diunduh dengan baik.
Caleb
2
Dan bagi saya, biner yang dihasilkan bernama python3.5 dan tinggal di sini: [root @ machine python3.5] # yang python3.5 /usr/local/bin/python3.5 Jadi Anda mungkin ingin menambahkan symlink ke nama ini python3 untuk kenyamanan
Will
6
jika Anda mendapatkan no acceptable C compiler found in $PATH when installing python
rujukan
3
./configure --with-ensurepip=installuntuk mengaktifkan pip3, atau Anda tidak akan pip3menginstal setelah kompilasi.
Searene
238

Menginstal dari RPM umumnya lebih baik, karena:

  • Anda dapat menginstal dan menghapus instalan (dengan benar) python3.
  • yang waktu instalasi adalah cara yang lebih cepat . Jika Anda bekerja di lingkungan cloud dengan banyak VM, kompilasi python3 pada setiap VM tidak dapat diterima.

Solusi 1: Repositori Red Hat & EPEL

Red Hat telah ditambahkan melalui repositori EPEL :

  • Python 3.4 untuk CentOS 6
  • Python 3.6 untuk CentOS 7

[EPEL] Cara menginstal Python 3.4 di CentOS 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

Anda dapat membuat virtualenv Anda menggunakan pyvenv:

pyvenv /tmp/foo

[EPEL] Cara menginstal Python 3.6 pada CentOS 7

Dengan CentOS7, pip3.6disediakan sebagai paket :)

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

Anda dapat membuat virtualenv Anda menggunakan pyvenv:

python3.6 -m venv /tmp/foo

Jika Anda menggunakan pyvenvskrip, Anda akan mendapatkan PERINGATAN:

$ pyvenv-3.6 /tmp/foo
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`

Solusi 2: Repositori Komunitas IUS

Komunitas IUS menyediakan beberapa paket terbaru untuk RHEL & CentOS . Orang-orang di belakang berasal dari Rackspace, jadi saya pikir mereka cukup dapat dipercaya ...

https://ius.io/

Periksa repo yang tepat untuk Anda di sini:

https://ius.io/setup

[IUS] Cara menginstal Python 3.6 pada CentOS 6

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

Anda dapat membuat virtualenv Anda menggunakan pyvenv:

python3.6 -m venv /tmp/foo

[IUS] Cara menginstal Python 3.6 pada CentOS 7

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

Anda dapat membuat virtualenv Anda menggunakan pyvenv:

python3.6 -m venv /tmp/foo
Samuel Phan
sumber
1
Memperbaiki URL paket rilis IUS. mereka telah memperbarui versi, itu saja. Jika mereka memperbarui paket lagi, Anda dapat memeriksa tautan ke RPM mereka dari halaman web.
Samuel Phan
1
Seperti yang saya katakan, tautan dalam jawaban Anda berisi karakter unicode yang tidak dapat dicetak. Ketika saya menyalin / menempelkan tautan Anda, inilah yang saya lihat di VIM: https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/iu<200c><200b>s-release-1.0-14.iu‌​s.centos6.noarch.rpm Ini adalah karakter unicode: fileformat.info/info/unicode/char/200c/index.htm URL dalam jawaban asli saya berfungsi, saya baru saja menguji Itu.
Samuel Phan
1
Saya telah diberitahu bahwa repositori komunitas IUS tidak dapat diandalkan seperti Koleksi Perangkat Lunak sehingga saya akan menjawab dengan Mike Guerette di CentOS 6
bformet
2
Dengan menggunakan solusi ini, bagaimana Anda menginstal pip untuk python34?
Loïc
1
Pertanyaan yang sangat bagus, saya menambahkan komentar untuk itu. Itu yang terbaik yang saya temukan. Jika Anda ingin tetap menggunakan instalasi berbasis RPM, Anda harus menggunakan repositori IUS untuk CentOS 7. Mereka menyediakan a python34u-pip.
Samuel Phan
31

Selain jawaban gecco saya akan mengubah langkah 3 dari:

./configure

untuk:

./configure --prefix=/opt/python3

Kemudian setelah instalasi Anda juga bisa:

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

Ini untuk memastikan bahwa instalasi tidak akan bertentangan dengan python yang diinstal dengan yum.

Lihat penjelasan yang saya temukan di Internet:

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

rsc
sumber
16
Mengapa /opt? /usr/localsecara khusus ada untuk tujuan ini dan di situlah ./configuretanpa eksplisit --prefixakan menempatkannya.
cababunga
@ababunga Seperti yang saya tulis saya telah dipengaruhi oleh membaca tutorial dari situs yang ditentukan. Namun demikian menginstal python dengan cara di atas mungkin dapat digunakan - itu akan jauh lebih mudah untuk menghapus instalannya (sepertinya target uninstall untuk make tidak disediakan). Anda juga dapat dengan mudah menginstal berbagai versi python3 di direktori terpisah yang ditentukan di bawah / opt dan secara manual mengatur mana yang akan digunakan atau diuji.
rsc
Anda mungkin juga ingin mengatur PATH Anda untuk berisi folder binari. Bagi saya ituexport PATH=$PATH:/opt/python3/bin
Caleb
10

Bersamaan dengan Python 2.7 dan 3.3, Red Hat Software Collections sekarang menyertakan Python 3.4 - semuanya berfungsi pada RHEL 6 dan 7.

Dokumen RHSCL 2.0 ada di https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

Ditambah banyak artikel di developerblog.redhat.com.

sunting

Ikuti petunjuk ini untuk menginstal Python 3.4 di RHEL 6/7 atau CentOS 6/7:

# 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
Mike Guerette
sumber
//, Bukankah ini mengharuskan kita untuk mengaktifkan shell khusus? Dikombinasikan dengan virtualenvs, saya bisa melihat itu menjadi menyebalkan.
Nathan Basanese
//, mengapa ini membutuhkan scl enable rh-python34 bash? Apa implikasi untuk menggunakan ini nanti?
Nathan Basanese
Apakah ada cara untuk menginstal python3.5 di RedHat 6? Saya mencoba wget https://www.softwarecollections.org/en/scls/rhscl/rh-python35/epel-6-x86_64/download/rhscl-rh-python35-epel-6-x86_64.noarch.rpm, tetapi tidak ditemukan.
Searene
Anda harus berlangganan untuk mendapatkan koleksi? Berapa harganya?
Noumenon
1
Tidak ada biaya tambahan. Koleksi Perangkat Lunak RH adalah bagian dari semua langganan pengembang RHEL dan sebagian besar langganan RHEL. Langganan pengembangan RHEL tanpa biaya dapat diperoleh dari developers.redhat.com/download. Ini adalah langganan RHEL nyata - semua bit yang sama dengan hak produksi - tetapi untuk tujuan pengembangan.
Mike Guerette
9

Gunakan repositori 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

(Perintah terakhir ini harus dijalankan setiap kali Anda ingin menggunakan python27 daripada standar sistem.)

Paul Draper
sumber
4
Setelah membaca dokumen redhat apa yang perlu saya lakukan adalah; scl enable python33 bashuntuk meluncurkan shell baru yang akan diaktifkan untuk python 3 atau scl enable python33 'python hello.py'yang akan menjalankan file python Anda menggunakan python 3 di shell saat ini
camilan
//, Instruksi apa lagi yang lebih umum yang memungkinkan pemasangan Python 3.4?
Nathan Basanese
Jika Anda berada di RHEL, menggunakan Red Hat Software koleksi: subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-server-rhscl-7-rpms. Maka kamu bisa yum install rh-python36. Lihat Cara menginstal Python 3 di RHEL untuk info lebih lanjut.
Rob T.
9

Anda dapat mengunduh RPM sumber dan RPM biner untuk RHEL6 / CentOS6 dari sini

Ini adalah backport dari rpm sumber pengembangan Fedora terbaru ke RHEL6 / CentOS6

Florian La Roche
sumber
Itu hebat. Terima kasih atas usaha Anda, Florian. Mungkin menjalankan createrepodirektori-direktori itu akan membuat mereka lebih berguna bagi sebagian orang.
cababunga
Apa yang lega. rpm terpasang dengan sempurna.
lyomi
//, Bagaimana kita membuat repositori dari tautan itu?
Nathan Basanese
//, saya dapat mengkonfirmasi bahwa ini berfungsi. Tunggu sebentar, saya baru saja membuat sesuatu yang cepat yang menggunakan URL itu sebagai baseurl: 0bin.net/paste/…
Nathan Basanese
6

Saya melihat semua jawaban baik meminta untuk mengkompilasi python3 dari kode atau menginstal paket RPM biner. Berikut ini jawaban lain untuk mengaktifkan EPEL (Paket Ekstra untuk Perusahaan Linux) dan kemudian menginstal python menggunakan yum. Langkah-langkah untuk 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

Lihat juga tautan

Jay Rajput
sumber
Bekerja dengan baik, terutama jika cara resmi melalui SCL tidak berhasil. Kemudian instal pip3:sudo yum install python34-setuptools
OSP
5

Saya mengalami masalah yang sama menggunakan python 2.7. Ikuti langkah-langkah di bawah ini untuk berhasil meningkatkan ke 3.6. Anda juga dapat mencoba ini-

  1. Lihat sebelum meningkatkan versi adalah 2.x

    python --version
    Python 2.7.5
  2. Gunakan perintah di bawah ini untuk memutakhirkan python Anda ke versi 3.x

    yum instal python3x

    menggantikan x dengan nomor versi yang Anda inginkan.

    yaitu untuk menginstal mengeksekusi python 3.6

    yum install python36
  3. Setelah itu jika Anda ingin mengatur python ini untuk versi default Anda lalu masuk tambahkan file bashrc

    vi ~ / .bashrc

    alias python='python3.6'
  4. jalankan perintah bash untuk menerapkan pengaturan

    bash 
  5. Sekarang Anda dapat melihat versi di bawah ini

    python --version
    Python 3.6.3
IRSHAD
sumber
Jawaban ini tidak akan berfungsi tanpa menambahkan salah satu dari repo pihak ke-3 baik EPEL atau IUS. Tidak ada paket python36 di RHEL. Paket RHSCL adalah rh-python36.
Rob T.
4

Tiga langkah menggunakan Python 3.5 oleh Koleksi Perangkat Lunak :

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

Perhatikan bahwa sudo tidak diperlukan untuk perintah terakhir. Sekarang kita dapat melihat bahwa python 3 adalah default untuk shell saat ini:

python --version
Python 3.5.1

Cukup lewati perintah terakhir jika Anda lebih suka memiliki Python 2 sebagai default untuk shell saat ini.

Sekarang katakanlah bahwa skrip Python 3 Anda memberi Anda kesalahan seperti /usr/bin/env: python3: No such file or directory. Itu karena instalasi biasanya dilakukan ke jalur yang tidak biasa:

/opt/rh/rh-python35/root/bin/python3

Di atas biasanya akan menjadi symlink. Jika Anda ingin python3ditambahkan secara otomatis ke $PATHuntuk semua pengguna saat startup, salah satu cara untuk melakukannya adalah menambahkan file seperti:

sudo vim /etc/profile.d/rh-python35.sh

Yang akan memiliki sesuatu seperti:

#!/bin/bash

PATH=$PATH:/opt/rh/rh-python35/root/bin/

Dan sekarang setelah reboot, jika kita lakukan

python3 --version

Seharusnya berfungsi. Satu pengecualian adalah pengguna yang dibuat secara otomatis seperti "jenkins" di server Jenkins yang tidak memiliki shell. Dalam hal ini, secara manual menambahkan path ke $PATHdalam skrip akan menjadi salah satu cara untuk pergi.

Terakhir, jika Anda menggunakan sudo pip3untuk menginstal paket, tetapi memberitahu Anda bahwa pip3 tidak dapat ditemukan, bisa jadi Anda memiliki secure_path di / etc / sudoers . Memeriksa dengan sudo visudoharus mengonfirmasi hal itu. Untuk sementara menggunakan PATH standar saat menjalankan perintah yang dapat Anda lakukan, misalnya:

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

Lihat pertanyaan ini untuk lebih jelasnya.

CATATAN : Ada Python 3.6 yang lebih baru oleh Software Collections, tetapi saya tidak akan merekomendasikannya saat ini, karena saya mengalami sakit kepala besar saat mencoba menginstal Pycurl. Untuk Python 3.5 itu bukan masalah karena saya baru saja melakukannya sudo yum install sclo-python35-python-pycurlyang berhasil.

Nagev
sumber
No package centos-release-scl available.
Joe
Ini tersedia di repositori CentOS.
Nagev
4

Jika Anda menggunakan RHEL dan menginginkan Red Hat yang didukung Python, gunakan koleksi Red Hat Software (RHSCL). Paket EPEL dan IUS tidak didukung oleh Red Hat. Juga banyak jawaban di atas menunjuk ke koleksi perangkat lunak CentOS. Meskipun Anda dapat menginstalnya, mereka bukan paket yang didukung Red Hat untuk RHEL.

Juga, jawaban pilihan teratas memberikan saran buruk - Di RHEL Anda tidak ingin berubah /usr/bin/python, /usr/bin/python2karena Anda mungkin akan rusak yumdan alat admin RHEL lainnya. Lihatlah /bin/yum, ini adalah skrip Python yang dimulai dengan #!/usr/bin/python. Jika Anda mengompilasi Python dari sumber, jangan lakukan make installroot sebagai. Itu akan menimpa /usr/bin/python. Jika kamu istirahatyum , akan sulit memulihkan sistem Anda.

Untuk info lebih lanjut, lihat Cara menginstal Python 3, pip, venv, virtualenv, dan pipenv di RHEL di developers.redhat.com . Ini mencakup menginstal dan menggunakan Python 3 dari RHSCL, menggunakan Python Virtual Environments, dan sejumlah tips untuk bekerja dengan koleksi perangkat lunak dan bekerja dengan Python di RHEL.

Singkatnya, untuk menginstal Python 3.6 melalui Red Hat Software Collections:

$ 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

Untuk menggunakan koleksi perangkat lunak, Anda harus mengaktifkannya:

scl enable rh-python36 bash

Namun jika Anda ingin Python 3 diaktifkan secara permanen, Anda dapat menambahkan yang berikut ke ~ / .bashrc Anda dan kemudian logout dan kembali lagi. Sekarang Python 3 secara permanen di jalur Anda.

# Add RHSCL Python 3 to my login environment
source scl_source enable rh-python36

Catatan: setelah Anda melakukannya, mengetik pythonsekarang memberi Anda Python 3.6, bukan Python 2.7.

Lihat artikel di atas untuk semua ini dan lebih banyak detail.

Rob T.
sumber
3

Jika Anda ingin paket RHEL resmi, Anda dapat menggunakan RHSCL (Red Hat Software Collections)

Keterangan lebih lanjut:

Anda harus memiliki akses ke Portal Pelanggan Red Hat untuk membaca artikel lengkap.

daneel
sumber
//, Baru saja terbalik. Apakah Anda bersedia membuat ringkasan tentang apa yang dilakukan seseorang untuk menggunakan RHSCL untuk ini? Lagipula, ini adalah situs tanya jawab.
Nathan Basanese
1
Artikel Cara menginstal Python 3 di RHEL memiliki langkah-langkah terkini untuk Python 3.6 melalui koleksi perangkat lunak dan banyak tips untuk bekerja dengan RHSCLs, Python, dan lingkungan virtual.
Rob T.
3

Berikut langkah-langkah yang saya ikuti untuk menginstal 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
Aty
sumber
2
Jika Anda membangun dari sumber tanpa menginstal sejumlah dependensi -devel (SSL, bzip, dll) Anda akan kehilangan sejumlah modul yang bergantung pada objek yang dibagikan. Menginstal salah satu distribusi berbasis rpm (RHSCL, EPEL, atau IUS) adalah ide yang lebih baik
Rob T.
1

yum install python34.x86_64berfungsi jika Anda telah epel-releasemenginstal, yang jawaban ini menjelaskan caranya, dan saya mengonfirmasi itu berfungsiRHEL 7.3

$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)

$ type python3
python3 is hashed (/usr/bin/python3)
amfibi
sumber
1

Untuk RHEL di Amazon Linux, menggunakan python3 yang harus saya lakukan:

sudo yum instal python34-devel

Maxime Martineau
sumber
1
No package python34-devel available.
Joe
1

Bekerja penuh 36 saat SCL tidak tersedia (berdasarkan input 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

Akhirnya aktifkan lingkungan ...

pyvenv-3.6 py3
source py3/bin/activate

Kemudian python3

OSP
sumber
0

Anda dapat menginstal miniconda ( https://conda.io/miniconda.html ). Itu sedikit lebih dari sekadar python 3.7 tetapi instalasi sangat mudah dan sederhana.

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O
sudo yum install bzip2
bash Miniconda3-latest-Linux-x86_64.sh

Anda harus menerima perjanjian lisensi dan memilih beberapa opsi dalam mode interaktif (menerima default). Saya percaya itu dapat diinstal entah bagaimana diam-diam.

grabantot
sumber
Tidak dapat menemukan pythonperintah yang sebenarnya setelah itu, apakah dibungkus?
Mugen
0

Bagi mereka yang bekerja pada AWS EC2 RHEL 7.5, ( gunakan sudo ) aktifkan repo yang diperlukan

yum-config-manager --enable rhui-REGION-rhel-server-optional
yum-config-manager --enable rhui-REGION-rhel-server-rhscl

Instal Python 3.6

yum install rh-python36

Instal dependensi lain

yum install rh-python36-numpy  rh-python36-scipy  rh-python36-python-tools  rh-python36-python-six
Vasu
sumber