Установка 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 от:
./configureto:
./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см. Также ссылке