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

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

yum search python3

Который вернул No matches found for: python3

С последующим:

yum search python

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


person Chander Shivdasani    schedule 10.11.2011    source источник
comment
Я подозреваю, что RHEL еще не включает Python 3. Вы можете установить RPM, созданный для Fedora: admin.fedoraproject.org/pkgdb/ acls / имя / python3   -  person Thomas K    schedule 11.11.2011
comment
Вы также всегда можете установить из исходников.   -  person Danica    schedule 11.11.2011
comment
Просто обратите внимание на запрос EPEL на проверку Python 3.4 здесь: bugzilla.redhat.com/show_bug.cgi ? id = 1219411 Как только проблема будет решена, я (или кто-то другой) отправлю новый ответ с подробностями EPEL.   -  person ncoghlan    schedule 01.07.2015
comment
Ответ Самуэля Фана с использованием репозиториев yum сообщества лучше, чем сборка из исходников, именно по причинам, указанным Самуэлем. Вы должны изменить принятый ответ на его.   -  person Edward Ned Harvey    schedule 09.03.2018


Ответы (19)


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

  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 команде configure.

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

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

person gecco    schedule 13.11.2011
comment
Вы использовали: bzip2 -cd Python-3.2.2.tar.bz2 | tar xvf - это тоже более простой вариант: tar jxvf Python-3.2.2.tar.bz2 - person rajadhiraja; 09.07.2012
comment
Параметр bzip2 для tar был -y в некоторых ранних системах до того, как bzip2 был официально поддержан, а некоторые системы, которые не используют GNU tar, даже не имеют встроенной поддержки bzip2 (но могут иметь двоичные файлы bzip2). Поэтому в зависимости от того, насколько портативными должны быть вещи, команда bunzip2 -c (или bzip2 -cd) может быть более портативной. RHEL6, как и в вопросе, поддерживает -j, так что это спорный вопрос. Но для потомков ... - person dannysauer; 30.10.2014
comment
Я получил 301 (переехал) в 404 при использовании tar bz2. Я изменил его на .tgz, и он отлично загрузился. - person Caleb; 08.01.2015
comment
И для меня полученный двоичный файл был назван python3.5 и находится здесь: [root @ machine python3.5] # which python3.5 /usr/local/bin/python3.5 Так что вы можете захотеть чтобы добавить символическую ссылку на это с именем python3 для удобства - person Will; 27.05.2016
comment
если вы получите no acceptable C compiler found in $PATH when installing python ссылку на http://stackoverflow.com/questions/19816275/no-acceptable-c-compiler-found-in-path-when-installing-python. - person bnu; 03.06.2016
comment
Похоже, хорошее решение, но как насчет установки пути? У вас все еще есть проблемы с поиском правильного решения для этого, и это сэкономило бы много волос, если бы оно было прямо здесь ... - person Paul Nelligan; 17.08.2016
comment
./configure --with-ensurepip=install, чтобы включить pip3, иначе pip3 не будет установлен после компиляции. - person Searene; 20.11.2016
comment
выполнение установки зависит от zlib, и если вы получили zipimport.ZipImportError: невозможно распаковать данные; zlib недоступен, вы можете установить его: yum install zlib-devel - person smishra; 06.06.2018
comment
@Searene в Python 3.7.1 установите, если вы получаете No module named '_ctypes' ошибку, это из-за pip. У меня сработало следующее: ./configure --prefix=/home/kmiklas/python3 --without-ensurepip см. bugs.python.org/issue31652 - person kmiklas; 01.11.2018
comment
этим путь Python отличается. Стандартный питон все еще находится в python 2.7 python --version Python 2.7.5 Но если я поставлю python3 python3 --version Python 3.6.3 - person Barath Ravichander; 19.02.2019
comment
Проблема с установкой вручную заключается в том, что вам нужно вручную поддерживать ее в актуальном состоянии при выпуске исправлений безопасности. Один из ответов на основе RPM намного предпочтительнее. - person Paul Gear; 05.04.2019
comment
танки, jsud zxvf для тгз - person sirmagid; 13.01.2020
comment
Это смешно в наши дни, когда у IBM / Redhat есть репозитории и армия инженеров, которых нам приходится компилировать и устанавливать из исходников. Почему IBM и Redhat ненавидят Python? Это чушь. - person user10664542; 11.02.2020
comment
Этот ответ был выбран в качестве решения, но stackoverflow.com/a/23317640/59984 намного лучше почти для всех пользователей. Использование репозитория означает, что вам не нужно устанавливать огромное количество зависимостей и, что наиболее важно, у вас гораздо больше шансов установить обновления безопасности - я обычно вижу эти самодельные установки в отчетах аудита. - person Chris Adams; 15.07.2020

Установка из RPM обычно лучше, потому что:

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

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

Red Hat добавила через репозиторий EPEL:

  • Python 3.4 для CentOS 6
  • Python 3.6 для CentOS 7

[EPEL] Как установить Python 3.4 на 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

Вы можете создать свой virtualenv, используя pyvenv:

pyvenv /tmp/foo

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

В 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. Ребята из Rackspace, так что я считаю, что они заслуживают доверия ...

https://ius.io/

Проверьте подходящее репо здесь:

https://ius.io/setup

[IUS] Как установить Python 3.6 на CentOS 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
person Samuel Phan    schedule 26.04.2014
comment
Исправлен URL-адрес пакета выпуска IUS. обновили версию, вот и все. Если они снова обновят пакет, вы можете проверить ссылку на их RPM на веб-странице. - person Samuel Phan; 03.07.2015
comment
// Это приводит к следующей ошибке: Setting up Install Process Cannot open: https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-14.ius.centos6.noarch.rpm. Skipping. Error: Nothing to do в CEntOS 6.3. - person Nathan Basanese; 03.09.2015
comment
Похоже, в вашей ссылке есть какие-то странные символы. Пожалуйста, если URL-адрес RPM неправильный (из-за обновлений со стороны IUS), проверьте их веб-сайт, чтобы найти правильный RPM для вашего дистрибутива. - person Samuel Phan; 04.09.2015
comment
//, на данный момент этот ответ больше не работает для CEntOS 6. Протестируйте ссылку из ответа. Думаю, это мертвая ссылка. Вот ближайший с того же веб-сайта: dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ - person Nathan Basanese; 04.09.2015
comment
Как я уже сказал, ссылка в вашем ответе содержит непечатаемые символы Юникода. Когда я копирую / вставляю вашу ссылку, вот что я вижу в 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 Вот символ юникода: fileformat.info/info/unicode/char/200c/index.htm URL-адрес в моем исходном ответе работает, я только что его проверил. - person Samuel Phan; 07.09.2015
comment
Мне сказали, что репозиторий сообщества IUS не так надежен, как коллекции программного обеспечения, поэтому я бы пошел с ответом Майка Геретта на CentOS 6 - person bformet; 24.09.2015
comment
Коллекции программного обеспечения - это материал RedHat, поэтому я также считаю, что они более надежны, чем другие репозитории сообщества, но Коллекции программного обеспечения усложняют их использование. Вам необходимо включить оболочку (bash), которая будет иметь новую версию python в вашем PATH. В сочетании с виртуальными способностями я чувствую, что это превратилось бы в боль в шее ... - person Samuel Phan; 24.09.2015
comment
Используя это решение, как бы вы затем установили pip для python34? - person Loïc; 30.09.2015
comment
Очень хороший вопрос, я добавил к нему комментарий. Это лучшее, что я нашел. Если вы хотите придерживаться установки на основе RPM, вам следует использовать репозитории IUS для CentOS 7. Они предоставляют python34u-pip. - person Samuel Phan; 02.10.2015
comment
//, я могу подтвердить, что инструкции CEntOS 7 работают на CEntOS 7.1. - person Nathan Basanese; 05.11.2015
comment
Я установил python3.5 этим методом. Но я не могу «пывенв». Где это находится? - person Jian Chen; 06.03.2016
comment
Если вы установили пакет python35u-3.5.1-2.ius.centos7.x86_64 из репозитория IUS на CentOS 7.2, он у вас должен быть: pyvenv-3.5 --help. Вы можете найти его с помощью этой команды: yum provides '*/pyvenv*' - person Samuel Phan; 07.03.2016
comment
Ага, суффикс u важен. Сходил с ума, пытаясь установить python35, должно было быть install python35u на CentOS 6.7 - person Gerard; 23.08.2016
comment
Да, я не знаю, почему репозиторий IUS имеет этот суффикс u ... если вы знаете, я был бы рад узнать. - person Samuel Phan; 24.08.2016
comment
Для 3.5 на CentOS 6 мне также нужно было сделать sudo yum install python35u-devel, чтобы pip install mysqlclient заработал. - person Adam Barnes; 30.09.2016
comment
Да, но это не совсем связано с установкой Python. Некоторые библиотеки Python необходимо скомпилировать, а для этого им также нужны заголовки Python, которые находятся в пакете python*-devel. Это верно для psycopg2 и многих других библиотек Python. - person Samuel Phan; 30.09.2016
comment
easy_install pip3 должен работать - или его вариант - для установки pip3 без необходимости curl определенного URL-адреса, который может быть или не быть (больше). - person ILMostro_7; 05.05.2017
comment
Очень хороший момент, @ ILMostro_7 Я отредактирую свой пост! Спасибо! Однако для pyvenv нам все еще нужно завить pip вручную ... - person Samuel Phan; 05.05.2017
comment
REDHAT, а не CENTOS - person shrewmouse; 27.11.2018
comment
У меня нет подписки на RedHat, но пакеты RedHat и CentOS одинаковы. Теперь RedHat, похоже, заполняет EPEL последними версиями Python (3.6 на момент написания). Тег dist пакетов равен el7 для RHEL 7 и всех вариантов (например, CentOS). - person Samuel Phan; 28.11.2018
comment
Python 3.6 теперь доступен через EPEL: pkgs.org/download/python36 - person phoenix; 03.04.2019

В дополнение к ответу 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.

person rsc    schedule 29.07.2012
comment
Почему /opt? /usr/local существует специально для этой цели, и именно там ./configure без явного --prefix поместит его. - person cababunga; 12.02.2013
comment
@cababunga Как я уже писал, на меня повлияло чтение учебника с указанного сайта. Тем не менее, установка python описанным выше способом может быть полезной - было бы намного проще удалить его (похоже, цель удаления для make не предусмотрена). Также вы можете легко установить различные версии python3 в указанные отдельные каталоги в / opt и вручную указать, какой из них использовать или тестировать. - person rsc; 13.02.2013
comment
Вы также можете настроить свой PATH, чтобы он содержал папку с двоичными файлами. Для меня это было export PATH=$PATH:/opt/python3/bin - person Caleb; 09.01.2015

Наряду с 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.

изменить

Следуйте этим инструкциям, чтобы установить 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
person Mike Guerette    schedule 27.08.2015
comment
//, разве для этого не требуется включение специальной оболочки? В сочетании с virtualenvs я вижу, что это становится занозой в заднице. - person Nathan Basanese; 11.12.2015
comment
//, почему для этого требуется scl enable rh-python34 bash? Каковы последствия использования этого в дальнейшем? - person Nathan Basanese; 11.12.2015
comment
Есть ли способ установить python3.5 на RedHat 6? Я пробовал wget https://www.softwarecollections.org/en/scls/rhscl/rh-python35/epel-6-x86_64/download/rhscl-rh-python35-epel-6-x86_64.noarch.rpm, но не нашел. - person Searene; 20.11.2016
comment
Вы должны подписаться, чтобы получать коллекции? Сколько это стоит? - person Noumenon; 08.12.2017
comment
Никаких дополнительных затрат. Коллекции программного обеспечения RH являются частью всех подписок разработчиков RHEL и большинства подписок RHEL. Бесплатную подписку на разработку RHEL можно получить на сайте developers.redhat.com/download. Это настоящие подписки RHEL - все те же части, что и производственные права, - но предназначены для целей разработки. - person Mike Guerette; 11.12.2017

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

person Paul Draper    schedule 30.01.2014
comment
После прочтения документации redhat мне нужно было либо сделать; scl enable python33 bash для запуска новой оболочки, которая будет включена для python 3 или scl enable python33 'python hello.py', которая запустит ваш файл python с использованием python 3 в текущей оболочке. - person stratagem; 24.09.2014
comment
// Какие более общие инструкции также позволят установить Python 3.4? - person Nathan Basanese; 25.08.2015
comment
Если вы используете RHEL, используйте коллекции Red Hat Software: subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-server-rhscl-7-rpms. Тогда вы можете yum install rh-python36. См. Как установить Python 3 на RHEL для больше информации. - person Rob T.; 31.08.2018

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

person rkuska    schedule 16.07.2015
comment
//, что за задержка? Пип кажется простым путем. - person Nathan Basanese; 25.08.2015

Вы можете загрузить исходные пакеты RPM и двоичные пакеты RPM для RHEL6 / CentOS6 с здесь

Это бэкпорт с новейшего исходного кода разработки Fedora rpm на RHEL6 / CentOS6.

person Florian La Roche    schedule 03.02.2013
comment
Замечательно. Спасибо за ваши усилия, Флориан. Возможно, запуск createrepo в этих каталогах сделает их еще более полезными для некоторых людей. - person cababunga; 12.02.2013
comment
Какое облегчение. обороты установились отлично. - person lyomi; 21.03.2014
comment
//, как сделать репозиторий из этой ссылки? - person Nathan Basanese; 03.09.2015
comment
//, я могу подтвердить, что это работает. Погодите, я только что быстро придумал, что этот URL-адрес использовался как baseurl: 0bin.net/paste/ - person Nathan Basanese; 04.09.2015

Если вы используете RHEL и хотите Python с поддержкой Red Hat, используйте коллекции Red Hat Software (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 на developers.redhat.com. В нем описывается установка и использование Python 3 из RHSCL, использование виртуальных сред Python, а также ряд советов по работе с коллекциями программного обеспечения и работе с 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.

См. Статью выше, чтобы узнать обо всем этом и многом другом.

person Rob T.    schedule 13.08.2018

Я вижу все ответы как просьбу скомпилировать 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-XX.noarch.rpm # Verify actual RPM name by browsing dir over browser
rpm –ivh epel-*.rpm
yum install python36

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

person Jay Rajput    schedule 09.07.2018
comment
Работает хорошо, особенно если официальный способ через SCL не работает. Дополните pip3 install, затем: sudo yum install python34-setuptools - person OSP; 08.01.2019
comment
Ссылка сейчас 404 - person f01; 28.08.2020
comment
@ f01, ссылка работает нормально, но вам нужно заменить XX на фактическое число. Просто просмотрите https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/ и найдите epel-release-7-. На сегодняшний день (2021-07-09) версия - 13 (epel-release-7-13.noarch.rpm) - person Fer B.; 09.07.2021

У меня была такая же проблема с питоном 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. После этого, если вы хотите установить этот питон для своей версии по умолчанию, в файле bashrc добавьте

    vi ~ / .bashrc

    alias python='python3.6'
    
  4. выполнить команду bash, чтобы применить настройки

    bash 
    
  5. Теперь вы можете увидеть версию ниже

    python --version
    Python 3.6.3
    
person IRSHAD    schedule 05.04.2018
comment
Этот ответ не будет работать без добавления одного из сторонних репозиториев EPEL или IUS. В RHEL нет пакета python36. Пакет RHSCL - rh-python36. - person Rob T.; 31.08.2018

Вот шаги, которые я выполнил для установки 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
person Aty    schedule 11.02.2017
comment
Если вы собираете из исходного кода без установки ряда зависимостей -devel (SSL, bzip и т. Д.), Вам будет не хватать ряда модулей, которые зависят от общих объектов. Лучше установить один из дистрибутивов на основе rpm (RHSCL, EPEL или IUS). - person Rob T.; 31.08.2018

Три шага с использованием Python 3.5 от Коллекции программного обеспечения:

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 в / etc / sudoers. Проверка с помощью sudo visudo должна подтвердить это. Чтобы временно использовать стандартный PATH при запуске команд, вы можете, например, сделать следующее:

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

См. этот вопрос для подробнее.

ПРИМЕЧАНИЕ. Существует более новая версия Python 3.6 от Software Collections, но я бы не рекомендовал ее в настоящее время, потому что у меня были серьезные головные боли при попытке установить Pycurl. Для Python 3.5 это не проблема, потому что я только что сделал sudo yum install sclo-python35-python-pycurl, который работал "из коробки".

person Nagev    schedule 06.03.2017
comment
Он доступен в репозитории CentOS. - person Nagev; 06.03.2019


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)
person amphibient    schedule 08.02.2017

Для RHEL в Amazon Linux с использованием python3 мне пришлось сделать:

sudo yum установить python34-devel

person Maxime Martineau    schedule 10.05.2017

Полный рабочий 36, когда SCL недоступен (на основе ввода 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

person OSP    schedule 08.01.2019

Вы можете установить 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

Вам нужно будет принять лицензионное соглашение и выбрать некоторые параметры в интерактивном режиме (принять значения по умолчанию). Я считаю, что его также можно как-то установить бесшумно.

person grabantot    schedule 30.12.2018
comment
После этого не удалось найти настоящую команду python, она запакована? - person Mugen; 17.03.2020

Для тех, кто работает с 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
person Vasu    schedule 01.07.2019

Начиная с RHEL 8, вы можете установить python3 прямо из официальных репозиториев:

$ podman run --rm -ti ubi8 bash
[root@453fc5c55104 /]# yum install python3                                                                                                                                                    
Updating Subscription Management repositories.                                                                                                                                                
Unable to read consumer identity                                                                                                                                                              
Subscription Manager is operating in container mode.                                                                                                                                          
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.  

...

Installed:
  platform-python-pip-9.0.3-16.el8.noarch
  python3-pip-9.0.3-16.el8.noarch
  python3-setuptools-39.2.0-5.el8.noarch
  python36-3.6.8-2.module+el8.1.0+3334+5cb623d7.x86_64      

Complete!

Вы даже можете получить python 3.8:

[root@453fc5c55104 /]# yum install python38
Installed:
  python38-3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
  python38-libs-3.8.0-6.module+el8.2.0+5978+503155c0.x86_64                                       
  python38-pip-19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch                                  
  python38-pip-wheel-19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch                                 
  python38-setuptools-41.6.0-4.module+el8.2.0+5978+503155c0.noarch                           
  python38-setuptools-wheel-41.6.0-4.module+el8.2.0+5978+503155c0.noarch                          

Complete!
person Tomas Tomecek    schedule 18.08.2020