Установка Python 3 на RHEL


Я пытаюсь установить python3 на RHEL, используя следующие шаги:

yum search python3

, который возвращен No matches found for: python3

затем:

yum search python

ни один из результатов поиска не содержал python3. Что я должен попробовать дальше?

16 89

16 ответов:

его легко установить вручную:

  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 исполняемый файл (безопаснее, по крайней мере, на некоторые дистрибутивы yum должен python быть 2.x, например, для RHEL6) - вы можете установить python3.* как параллельный экземпляр системы по умолчанию с altinstall:

    $ make altinstall
    

теперь, если вы хотите альтернативный каталог установки, вы можете передать --prefix до .

пример: для "установки" Python в /opt / local, просто добавьте --prefix=/opt/local.

после make install шаг: для того, чтобы использовать новую установку Python, он может быть, что вы еще должны добавить [префикс]/bin в $PATH и [префикс]/lib в $LD_LIBRARY_PATH (в зависимости от --prefix вы прошли)

установка с RPM, как правило, лучше, потому что:

  • вы можете установить и удалить (правильно) python3.
  • the время установки намного быстрее. Если вы работаете в облачной среде с несколькими виртуальными машинами, компиляция python3 на каждой виртуальной машине неприемлема.

Решение 1: репозитории Red Hat & EPEL

красная шляпа добавил Python 3.4 для CentOS 6 и 7 через EPEL репозитория.

к сожалению:

  • pip3 не входит в комплект в любом обороте. Вам нужно установить вручную (см. ниже).
  • pyvenv прослушивается и не работает. Вы должны использовать virtualenv.

[EPEL] Как установить Python 3.4 на CentOS 6 & 7

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 в вашей виртуальное окружение:

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

но если вы хотите иметь его из коробки, вы можете добавить эту функцию bash (псевдоним) в своем .bashrc:

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

решение 2: репозитории сообщества IUS

сообщество IUS предоставляет некоторые современные пакеты для RHEL & CentOS. Ребята позади из Rackspace, поэтому я думаю, что они вполне заслуживают доверия...

https://ius.io/

проверьте правильность РЕПО ты здесь:

https://ius.io/GettingStarted/

[IUS] Как установить Python 3.5 на CentOS 6

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

Примечание:pyvenv-3.5 доступен из коробки, Если вы не хотите использовать virtualenv.

[IUS] Как установить Python 3.5 на CentOS 7

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

Примечание:pyvenv-3.5 доступен из коробки, Если вы не хотите использовать virtualenv.

В дополнение к ответу gecco я бы изменил Шаг 3 от:

./configure

to:

./configure --prefix=/opt/python3

затем после установки вы также можете:

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

это гарантирует, что установка не будет конфликтовать с python, установленным с yum.

посмотреть объяснение, которое я нашел в Интернете:

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, а не систему по умолчанию.)

вы можете скачать исходные RPMs и двоичные RPMs для RHEL6 / CentOS6 из здесь

Это backport от новейшей разработки Fedora источник rpm в RHEL6 / CentOS6

наряду с Python 2.7 и 3.3, Red Hat Software Collections теперь включает Python 3.4-все работы на RHEL 6 и 7.

документы RHSCL 2.0 находятся в https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

плюс много статей на developerblog.redhat.com.

edit

выполните следующие - инструкции чтобы установить Python 3.4 на RHEL 6/7 или 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

Python3 был недавно добавлен в EPEL7 как Python34.

в настоящее время предпринимаются усилия по созданию рекомендаций по упаковке о том, как упаковать вещи для Python3 в EPEL7.

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

у меня была такая же проблема с использованием python 2.7. Выполните следующие действия для успешного обновления до версии 3.6. Вы также можете попробовать этот -

  1. см. перед обновлением версия 2.x

    python --version
    Python 2.7.5
    
  2. используйте команду ниже, чтобы обновить python до 3.X версии-

    yum установить 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
    

Если вы хотите официальные пакеты RHEL вы можете использовать RHSCL (Red Hat Software Collections)

Подробнее:

вы должны иметь доступ к Red Hat Customer Portal, чтобы прочитать полные статьи.

вот шаги, которые я следовал, чтобы установить 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

просто сделать очень краткий автономный ответ, чтобы конкурировать с предложениями" установить из источника".

пакет не называется python3 но есть один пакет для каждого выпуска Python3.

yum install python36

получит вас Python 3.6.

три шага с помощью Python 3.5 by Коллекции Программного Обеспечения:

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

он должен просто работать. Одним из исключений будет автоматически сгенерированный пользователь, такой как" jenkins " на сервере Jenkins, который не имеет ракушка. В этом случае вручную добавьте путь к $PATH в скриптах будет один из способов пойти.

наконец, если вы используете sudo pip3 для установки пакетов, но он говорит вам, что pip3 не может быть найден, он может быть, что у вас есть secure_path на /и т. д./пользователям использовать sudo?. Проверка с sudo visudo должен подтвердить это. Временно использовать стандарт путь при выполнении команды вы можете сделать, для пример:

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

посмотреть этой вопрос для более подробной информации.

Примечание: есть более новый Python 3.6 по коллекциям программного обеспечения, но я бы не рекомендовал его в это время, потому что у меня были серьезные головные боли, пытаясь установить Pycurl. Для Python 3.5 это не проблема, потому что я только что сделал sudo yum install sclo-python35-python-pycurl, который работал из коробки.

если вы находитесь на RHEL и хотите, чтобы Red Hat поддерживал Python, используйте Red Hat Software collections (RHSCL). Пакеты EPEL и IUS не поддерживаются Red Hat. Также многие из ответов выше указывают на коллекции программного обеспечения CentOS. Хотя вы можете установить их, они не являются поддерживаемыми пакетами Red Hat для RHEL.

кроме того, верхний голосованный ответ дает плохой совет - на RHEL вы не хотите менять /usr/bin/python,/usr/bin/python2 потому что вы, скорее всего, сломать yum и другие RHEL инструменты администратора. Взгляните на /bin/yum, это скрипт Python, который начинается с #!/usr/bin/python. Если вы компилируете Python из исходного кода, не делайте make install как root. Это будет перезаписать /usr/bin/python. Если вы сломаете yum это может быть трудно восстановить систему.

дополнительная информация:Как установить Python 3, pip, venv, virtualenv и pipenv на RHEL on developers.redhat.com. он охватывает установку и использование Python 3 из RHSCL, используя Python Virtual Среды, а также ряд советов по работе с коллекциями программного обеспечения и работе с Python на RHEL.

в двух словах, чтобы установить Python 3.6 через 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

использовать набор программного обеспечения, вы должны включить его:

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 3.6 вместо Python 2.7.

см. выше статью для всего этого и гораздо более подробно.

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)

для RHEL на Amazon Linux, используя python3 я должен был сделать:

sudo yum install python34-devel

Я вижу, что все ответы либо просят скомпилировать python3 из кода, либо установить двоичный пакет RPM. Вот еще один ответ, чтобы включить EPEL (дополнительные пакеты для Enterprise Linux), а затем установить python с помощью yum. Шаги для 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

см. Также ссылке