Python 3'ü RHEL'e Kurmak


128

Aşağıdaki adımları kullanarak RHEL'de python3 kurmaya çalışıyorum:

yum search python3

Hangi geri döndü No matches found for: python3

Bunu takiben:

yum search python

Arama sonuçlarının hiçbiri python3 içermiyordu. Bundan sonra ne denemeliyim?


RHEL'in henüz Python 3'ü içermediğinden şüpheleniyorum. Fedora için oluşturulmuş bir RPM kurabilirsiniz: admin.fedoraproject.org/pkgdb/acls/name/python3
Thomas K

Ayrıca her zaman kaynaktan da yükleyebilirsiniz.
Dougal

Python 3.4 için EPEL inceleme talebini burada not ederek: bugzilla.redhat.com/show_bug.cgi?id=1219411 Bu çözüldüğünde, ben (veya başka biri) EPEL ayrıntılarını içeren yeni bir yanıt göndereceğim.
ncoghlan

2
Samuel Phan'ın topluluk yum depolarını kullanarak cevabı, tam da Samuel'in belirttiği nedenlerden dolayı, kaynaktan oluşturmaktan daha iyidir. Kabul edilen cevabı onun için değiştirmelisiniz.
Edward Ned Harvey

Yanıtlar:


186

Manuel olarak kurmak kolaydır:

  1. İndir ( Python.org'da daha yeni sürümler olabilir ):

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

    $ tar xf Python-3.* 
    $ cd Python-3.*
  3. Derlemeyi hazırlayın

    $ ./configure
  4. İnşa etmek

    $ make
  5. Yüklemek

    $ make install

    YA üzerine yazmak istemiyorsanız pythonçalıştırılabilir (daha güvenli bir, bazı dağıtımlar üzerinde en azından yumihtiyaçları pythonböyle RHEL6 gelince 2.x olmak) - kurabilirsiniz python3.*bir sistem varsayılan bir eşzamanlı örneği olarak altinstall:

    $ make altinstall

Şimdi alternatif bir kurulum dizini istiyorsanız --prefix, configurekomuta geçebilirsiniz .

Örnek: Python'u / opt / local içine 'yüklemek' için sadece ekleyin --prefix=/opt/local.

make installAdımdan sonra : Yeni Python kurulumunuzu kullanmak için, yine de [önek] / bin'i $PATHve [önek] / lib'yi $LD_LIBRARY_PATH( --prefixgeçtiğiniz şeye bağlı olarak) eklemeniz gerekebilir.


9
Kullandınız: bzip2 -cd Python-3.2.2.tar.bz2 | tar xvf - Bu aynı zamanda daha basit bir olasılık: tar jxvf Python-3.2.2.tar.bz2
rajadhiraja

1
Bz2 katranını kullanırken 404'e 301 (taşındı) aldım. Tgz olarak değiştirdim ve iyi indirildi.
Caleb

2
Ve benim için, ortaya çıkan ikili, python3.5 olarak adlandırıldı ve burada yaşıyor: [root @ machine python3.5] # hangi python3.5 /usr/local/bin/python3.5 Yani buna bir sembolik bağ eklemek isteyebilirsiniz. python3 kolaylık
Will

6
Eğer alırsanız no acceptable C compiler found in $PATH when installing pythonreffer http://stackoverflow.com/questions/19816275/no-acceptable-c-compiler-found-in-path-when-installing-python
bnu

3
./configure --with-ensurepip=installetkinleştirmek için pip3, yoksa pip3derlemeden sonra yüklemiş olmazsınız .
Searene

238

RPM'den yükleme genellikle daha iyidir, çünkü:

  • python3'ü (düzgün bir şekilde) yükleyebilir ve kaldırabilirsiniz .
  • Yükleme süresi yolu hızlıdır . Birden çok sanal makineye sahip bir bulut ortamında çalışıyorsanız, her bir sanal makinede python3 derlemek kabul edilemez.

1.Çözüm: Red Hat ve EPEL havuzları

Red Hat, EPEL deposu aracılığıyla şunları ekledi :

  • CentOS 6 için Python 3.4
  • CentOS 7 için Python 3.6

[EPEL] CentOS 6'ya Python 3.4 nasıl kurulur

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'inizi aşağıdakileri kullanarak oluşturabilirsiniz pyvenv:

pyvenv /tmp/foo

[EPEL] CentOS 7'ye Python 3.6 nasıl kurulur

CentOS7 ile pip3.6paket olarak sağlanır :)

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

Virtualenv'inizi aşağıdakileri kullanarak oluşturabilirsiniz pyvenv:

python3.6 -m venv /tmp/foo

pyvenvKomut dosyasını kullanırsanız, bir UYARI alırsınız:

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

2.Çözüm: IUS Topluluğu depoları

IUS Topluluğu, RHEL ve CentOS için bazı güncel paketler sağlar . Arkadaki adamlar Rackspace'den, bu yüzden oldukça güvenilir olduklarını düşünüyorum ...

https://ius.io/

Sizin için doğru depoyu buradan kontrol edin:

https://ius.io/setup

[IUS] CentOS 6'ya Python 3.6 nasıl kurulur

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

Virtualenv'inizi aşağıdakileri kullanarak oluşturabilirsiniz pyvenv:

python3.6 -m venv /tmp/foo

[IUS] CentOS 7'ye Python 3.6 nasıl kurulur

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

Virtualenv'inizi aşağıdakileri kullanarak oluşturabilirsiniz pyvenv:

python3.6 -m venv /tmp/foo

1
IUS sürüm paketi URL'si düzeltildi. versiyonu güncellediler, hepsi bu. Paketi tekrar güncellerlerse, web sayfasından RPM'lerinin bağlantısını kontrol edebilirsiniz.
Samuel Phan

1
Dediğim gibi, cevabınızdaki bağlantı yazdırılamayan unicode karakterler içeriyor. Bağlantınızı kopyaladığımda / yapıştırdığımda, işte VIM'de gördüğüm şey: https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/iu<200c><200b>s-release-1.0-14.iu‌​s.centos6.noarch.rpm İşte unicode karakter: fileformat.info/info/unicode/char/200c/index.htm Orijinal cevabımdaki URL çalışıyor, az önce test ettim o.
Samuel Phan

1
IUS topluluk havuzunun Yazılım Koleksiyonları kadar güvenilir olmadığı söylendi, bu yüzden Mike Guerette'in CentOS 6'daki cevabını vereceğim
bformet

2
Bu çözümü kullanarak, python34 için pip'i nasıl kurarsınız?
Loïc

1
Çok güzel soru, bunun için bir yorum ekledim. Bulduğum en iyisi bu. RPM tabanlı kuruluma bağlı kalmak istiyorsanız, CentOS 7 için IUS depolarını kullanmalısınız. Bunlar a python34u-pip.
Samuel Phan

31

Gecco'nun cevabına ek olarak 3. adımı şundan değiştirirdim:

./configure

için:

./configure --prefix=/opt/python3

Kurulumdan sonra şunları da yapabilirsiniz:

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

Kurulumun yum ile kurulan python ile çakışmamasını sağlamak içindir.

İnternette bulduğum açıklamaya bakın:

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


16
Neden /opt? /usr/localözellikle bu amaç için var ve orası ./configureaçık bir --prefixşekilde yerleştirmeyecek.
cababunga

@cababunga Yazdığım gibi, belirtilen siteden öğretici okumaktan etkilendim. Yine de python'u yukarıdaki şekilde kurmak kullanışlı olabilir - onu kaldırmak çok daha kolay olacaktır (görünüşe göre make için kaldırma hedefi sağlanmamıştır). Ayrıca, python3'ün çeşitli sürümlerini / opt altında belirtilen ayrı dizinlere kolayca yükleyebilir ve hangisinin kullanılacağını veya test edileceğini manuel olarak ayarlayabilirsiniz.
rsc

Ayrıca PATH'inizi ikili dosyalar klasörünü içerecek şekilde ayarlamak isteyebilirsiniz. Benim için öyleydiexport PATH=$PATH:/opt/python3/bin
Caleb

10

Python 2.7 ve 3.3 ile birlikte Red Hat Yazılım Koleksiyonları artık Python 3.4'ü de içeriyor - hepsi hem RHEL 6 hem de 7'de çalışıyor.

RHSCL 2.0 belgeleri https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/ adresindedir.

Ayrıca developerblog.redhat.com adresinde birçok makale bulabilirsiniz.

Düzenle

Python 3.4'ü RHEL 6/7 veya CentOS 6 / 7'ye yüklemek için şu talimatları izleyin :

# 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

//, bu bizim özel bir kabuğu etkinleştirmemizi gerektirmiyor mu? Virtualenv'lerle birleşince, bunun baş belası olduğunu görebiliyorum.
Nathan Basanese

//, bu neden gerektirir scl enable rh-python34 bash? Bunu daha sonra kullanmanın çıkarımları nelerdir?
Nathan Basanese

RedHat 6'ya python3.5 kurmanın bir yolu var mı? Denedim wget https://www.softwarecollections.org/en/scls/rhscl/rh-python35/epel-6-x86_64/download/rhscl-rh-python35-epel-6-x86_64.noarch.rpmama bulunamadı.
Searene

Koleksiyonları almak için abone olmanız mı gerekiyor? Bu ne kadar?
Noumenon

1
Ekstra maliyet yoktur. RH Yazılım Koleksiyonları, tüm RHEL geliştirici aboneliklerinin ve çoğu RHEL aboneliğinin bir parçasıdır. Ücretsiz RHEL geliştirme abonelikleri developer.redhat.com/download adresinden edinilebilir. Bunlar gerçek RHEL abonelikleridir - üretim yetkileriyle aynı bitler - ancak geliştirme amaçlıdır.
Mike Guerette

9

SCL depolarını kullanın.

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

(Bu son komut, sistem varsayılanı yerine python27'yi her kullanmak istediğinizde çalıştırılmalıdır.)


4
Redhat belgelerini okuduktan sonra yapmam gereken şey şuydu; scl enable python33 bashpython 3 için etkinleştirilecek veya scl enable python33 'python hello.py'mevcut kabukta python 3 kullanarak python dosyanızı çalıştıracak yeni bir kabuk başlatmak için
atıştırmalıklar

//, Python 3.4'ün kurulmasına başka hangi genel talimatlar izin verir?
Nathan Basanese

Eğer RHEL üzerine ise, Red Hat Yazılım koleksiyonları kullanın: subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-server-rhscl-7-rpms. O zaman yapabilirsin yum install rh-python36. Daha fazla bilgi için RHEL'de Python 3 nasıl kurulur konusuna bakın .
Rob T.


9

RHEL6 / CentOS6 için kaynak RPM'leri ve ikili RPM'leri buradan indirebilirsiniz.

Bu, en yeni Fedora geliştirme kaynağı rpm'den RHEL6 / CentOS6'ya bir backport'tur


Bu harika. Çaban için teşekkürler, Florian. Belki createrepobu dizinlerde koşmak , onları bazı insanlar için daha da kullanışlı hale getirir.
cababunga

Ne rahatlama. rpm mükemmel bir şekilde kuruldu.
lyomi

//, Bu bağlantıdan nasıl depo yaparız?
Nathan Basanese

//, bunun çalıştığını doğrulayabilirim. Bekle, o URL'yi şu şekilde kullanan hızlı bir şey hazırladımbaseurl : 0bin.net/paste/…
Nathan Basanese

6

Tüm cevapları ya python3'ü koddan derlemek ya da ikili RPM paketini kurmak olarak görüyorum. İşte EPEL'i (Enterprise Linux için Ekstra Paketler) etkinleştirmek ve ardından yum kullanarak python yüklemek için başka bir cevap. RHEL 7.5 (Maipo) için adımlar

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

Ayrıca bağlantıya bakın


Özellikle SCL aracılığıyla resmi yol işe yaramazsa iyi çalışır. Pip3 kurulumunu tamamlayın ve ardından:sudo yum install python34-setuptools
OSP

5

Python 2.7 kullanırken aynı sorunu yaşıyordum. Başarıyla 3.6'ya yükseltmek için aşağıdaki adımları izleyin. Bunu da deneyebilirsiniz-

  1. 2.x sürümünü yükseltmeden önce bakın

    python --version
    Python 2.7.5
  2. Python'unuzu 3.x sürümüne yükseltmek için aşağıdaki komutu kullanın.

    yum python3x yükle

    x'i istediğiniz sürüm numarasıyla değiştirin .

    ie python 3.6 çalıştırmak için

    yum install python36
  3. Bundan sonra, bu python'u varsayılan sürümünüz için ayarlamak istiyorsanız, bashrc dosyasında şunu ekleyin:

    vi ~ / .bashrc

    alias python='python3.6'
  4. ayarları uygulamak için bash komutunu çalıştırın

    bash 
  5. Şimdi aşağıdaki sürümü görebilirsiniz

    python --version
    Python 3.6.3

Bu yanıt, 3. taraf depolarından birini EPEL veya IUS eklemeden işe yaramaz. RHEL'de python36 paketi yok. RHSCL paketi rh-python36.
Rob T.

4

Yazılım Koleksiyonları tarafından Python 3.5 kullanarak üç adım :

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

Son komut için sudo'nun gerekli olmadığını unutmayın. Şimdi python 3'ün mevcut kabuk için varsayılan olduğunu görebiliriz:

python --version
Python 3.5.1

Mevcut kabuk için varsayılan olarak Python 2'yi tercih ediyorsanız, son komutu atlayın.

Şimdi diyelim ki Python 3 betikleriniz size gibi bir hata veriyor /usr/bin/env: python3: No such file or directory. Bunun nedeni, kurulumun genellikle alışılmadık bir yola yapılmasıdır:

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

Yukarıdakiler normalde bir sembolik bağlantı olacaktır. Başlangıçta tüm kullanıcılar için python3otomatik olarak eklenmesini istiyorsanız $PATH, bunu yapmanın bir yolu, aşağıdaki gibi bir dosya eklemektir:

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

Hangi şeye benzer:

#!/bin/bash

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

Ve şimdi yeniden başlatmanın ardından, yaparsak

python3 --version

Sadece çalışmalı. Bir istisna, kabuğu olmayan bir Jenkins sunucusunda "jenkins" gibi otomatik olarak oluşturulmuş bir kullanıcı olabilir. Bu durumda, yolu $PATHkomut dosyalarına manuel olarak eklemek, gidilecek yollardan biridir.

Son olarak, sudo pip3paketleri kurmak için kullanıyorsanız , ancak size pip3'ün bulunamadığını söylüyorsa , / etc / sudoers içinde bir güvenli_ yolunuz olabilir . İle kontrol etmek sudo visudobunu onaylamalıdır. Yapabileceğiniz komutları çalıştırırken standart PATH'ı geçici olarak kullanmak için , örneğin:

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

Daha fazla ayrıntı için bu soruya bakın.

NOT : Yazılım Koleksiyonları tarafından daha yeni bir Python 3.6 var, ancak şu anda tavsiye etmem çünkü Pycurl'u kurmaya çalışırken büyük baş ağrılarım vardı. Python 3.5 için bu bir sorun değil çünkü sudo yum install sclo-python35-python-pycurlkutudan çıkardığım gibi yaptım .


No package centos-release-scl available.
Joe

CentOS deposunda mevcuttur.
Nagev

4

RHEL'deyseniz ve Red Hat destekli bir Python istiyorsanız, Red Hat Software koleksiyonlarını (RHSCL) kullanın. EPEL ve IUS paketleri Red Hat tarafından desteklenmemektedir. Ayrıca yukarıdaki yanıtların çoğu CentOS yazılım koleksiyonlarına işaret ediyor. Bunları yükleyebilirsiniz ancak bunlar RHEL için Red Hat tarafından desteklenen paketler değildir.

Ayrıca, en çok oylanan cevap kötü tavsiyeler verir - RHEL'de değiştirmek istemezsiniz /usr/bin/python, /usr/bin/python2çünkü büyük olasılıkla bozulur yumve diğer RHEL yönetim araçları. Şuna bir bakın /bin/yum, bu bir Python betiğidir #!/usr/bin/python. Python'u kaynaktan derlerseniz, make installkök olarak yapmayın . Bu üzerine yazacak /usr/bin/python. Eğer kırarsanız yum, sisteminizi geri yüklemek zor olabilir.

Daha fazla bilgi için, bkz Python 3, RHEL üzerine Pip, venv, VIRTUALENV ve pipenv nasıl yüklenir üzerinde developers.redhat.com . Python 3'ü RHSCL'den kurmayı ve kullanmayı, Python Sanal Ortamlarını kullanmayı ve RHEL'de yazılım koleksiyonları ile çalışmak ve Python ile çalışmak için bir dizi ipucu içerir.

Özetle, Red Hat Yazılım Koleksiyonları aracılığıyla Python 3.6'yı yüklemek için:

$ 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

Bir yazılım koleksiyonunu kullanmak için onu etkinleştirmeniz gerekir:

scl enable rh-python36 bash

Bununla birlikte, Python 3'ün kalıcı olarak etkinleştirilmesini istiyorsanız, aşağıdakileri ~ / .bashrc dosyanıza ekleyebilir ve ardından oturumu kapatıp tekrar açabilirsiniz. Artık Python 3 kalıcı olarak yolunuzdadır.

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

Not: Bunu yaptıktan sonra, yazmak pythonartık size Python 2.7 yerine Python 3.6 verir.

Tüm bunlar ve çok daha fazla ayrıntı için yukarıdaki makaleye bakın.


3

Resmi RHEL paketleri istiyorsanız, RHSCL'yi (Red Hat Yazılım Koleksiyonları) kullanabilirsiniz.

Daha fazla detay:

Makalelerin tamamını okumak için Red Hat Müşteri Portalı'na erişiminizin olması gerekir.


//, Yeni oy verildi. Bunun için RHSCL'yi kullanmak için ne yapıldığının bir özetini yapmak ister misiniz? Sonuçta bu bir soru cevap sitesidir.
Nathan Basanese

1
Python 3'ün RHEL'e nasıl yükleneceği makalesi , yazılım koleksiyonları aracılığıyla Python 3.6 için güncel adımlar ve RHSCL'ler, Python ve sanal ortamlarla çalışmak için birçok ipucu içerir.
Rob T.

3

Python3'ü kurmak için izlediğim adımlar şunlardır:

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
Bir dizi -develi bağımlılık (SSL, bzip, vb.) Kurmadan kaynaktan derlerseniz, paylaşılan nesnelere bağlı bir dizi modülü kaçırırsınız. Devir tabanlı dağıtımlardan (RHSCL, EPEL veya IUS) birini kurmak daha iyi bir fikirdir
Rob T.

1

yum install python34.x86_64epel-releaseyüklediyseniz çalışır , bu cevap nasıl yapılacağını açıklar ve üzerinde çalıştığını onayladımRHEL 7.3

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

$ type python3
python3 is hashed (/usr/bin/python3)

1

Amazon Linux üzerinde RHEL için python3 kullanarak yapmam gereken:

sudo yum install python34-devel


1
No package python34-devel available.
Joe

1

SCL mevcut olmadığında tam çalışma 36 (Joys girişine göre)

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

Sonunda ortamı etkinleştirin ...

pyvenv-3.6 py3
source py3/bin/activate

Sonra python3


0

Miniconda ( https://conda.io/miniconda.html ) kurabilirsiniz . Bu sadece python 3.7'den biraz daha fazla ama kurulum çok basit ve basit.

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

Lisans sözleşmesini kabul etmeniz ve etkileşimli modda bazı seçenekleri seçmeniz gerekir (varsayılanları kabul edin). Bir şekilde sessizce kurulabileceğine inanıyorum.


Sonrasında gerçek pythonkomut bulunamadı , sarılmış mı?
Mugen

0

AWS EC2 RHEL 7.5 üzerinde çalışanlar için, ( sudo kullanın ) gerekli depoları etkinleştirin

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

Python 3.6'yı yükleyin

yum install rh-python36

Diğer bağımlılıkları yükleyin

yum install rh-python36-numpy  rh-python36-scipy  rh-python36-python-tools  rh-python36-python-six
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.