Установка Python 3 на RHEL
Я пытаюсь установить python3 на RHEL, используя следующие шаги:
yum search python3
, который возвращен No matches found for: python3
затем:
yum search python
ни один из результатов поиска не содержал python3. Что я должен попробовать дальше?
16 ответов:
его легко установить вручную:
скачать (там могут быть более новые релизы на Python.org):
$ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
распакуйте
$ tar xf Python-3.* $ cd Python-3.*
подготовить подборку
$ ./configure
построить
$ make
установить
$ 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/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. Вы также можете попробовать этот -
см. перед обновлением версия 2.x
python --version Python 2.7.5
используйте команду ниже, чтобы обновить python до 3.X версии-
yum установить python3x
заменить x с номером версии, которую вы хотите.
т. е. для установки python 3.6 выполнить
yum install python36
после этого, если вы хотите установить этот python для своей версии по умолчанию, то в bashrc добавить
vi ~/.bashrc
alias python='python3.6'
выполнить команду bash, чтобы применить настройки
bash
теперь вы можете увидеть версию ниже
python --version Python 3.6.3
Если вы хотите официальные пакеты RHEL вы можете использовать RHSCL (Red Hat Software Collections)
Подробнее:
- руководство по Python 3.3 В RHSCL 1.1
- Как получить доступ и загрузить Red Hat Software Collections (RHSCL) и/или Red Hat Developer Toolset (DTS)?
вы должны иметь доступ к 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)
Я вижу, что все ответы либо просят скомпилировать 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
см. Также ссылке