Установка Python 3 на RHEL
Я пытаюсь установить python3 на RHEL, выполнив следующие шаги:
yum search python3
Что вернуло No matches found for: python3
Далее следуют:
yum search python
Ни один из результатов поиска не содержал python3. Что мне делать дальше?
Ответы
Ответ 1
Его легко установить вручную:
-
Загрузка (могут быть более свежие релизы на 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
команде configure
.
Пример: для 'установки' Python в /opt/local просто добавьте --prefix=/opt/local
.
После шага make install
: чтобы использовать новую установку Python, возможно, вам все равно нужно добавить префикс /bin к $PATH
и [префикс]/lib в $LD_LIBRARY_PATH
(в зависимости от пройденного --prefix
)
Ответ 2
Установка из 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/GettingStarted/
[IUS] Как установить Python 3.6 на CentOS 6
sudo yum install -y https://centos6.iuscommunity.org/ius-release.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://centos7.iuscommunity.org/ius-release.rpm
sudo yum install -y python36u python36u-pip
Вы можете создать свой virtualenv с помощью pyvenv
:
python3.6 -m venv /tmp/foo
Ответ 3
В дополнение к ответу gecco я бы изменил шаг 3:
./configure
в
./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
Ответ 4
Вы можете загрузить исходные RPM и бинарные RPM для RHEL6/CentOS6 из
здесь
Это backport из новейшей разработки Fedora
источник rpm до RHEL6/CentOS6
Ответ 5
Используйте репозитории 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, а не по умолчанию по умолчанию.)
Ответ 6
Наряду с 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
Ответ 7
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
Ответ 8
Все ответы я вижу либо с просьбой скомпилировать python3 из кода, либо с установкой бинарного пакета RPM. Вот еще один ответ, чтобы включить EPEL (дополнительные пакеты для корпоративного 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
Также смотрите ссылку
Ответ 9
У меня была та же проблема с использованием Python 2.7. Выполните следующие шаги для успешного обновления до 3.6. Вы также можете попробовать это one-
-
Смотрите перед обновлением версии 2.x
python --version
Python 2.7.5
-
Используйте команду ниже, чтобы обновить ваш питон до 3.x version-
ням установить python3x
замените х на номер версии, которую вы хотите.
т.е. для установки python 3.6 выполните
yum install python36
-
После этого, если вы хотите установить этот питон для вашей версии по умолчанию, то в файл bashrc добавьте
vi ~/.bashrc
alias python='python3.6'
-
выполнить команду bash, чтобы применить настройки
bash
-
Теперь вы можете увидеть версию ниже
python --version
Python 3.6.3
Ответ 10
Три шага с использованием Python 3.5 от Software Collections:
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
который работал из коробки.
Ответ 11
Если вы используете RHEL и хотите использовать Python с поддержкой Red Hat, используйте коллекции Red Hat Software (RHSCL). Пакеты EPEL и IUS не поддерживаются Red Hat. Также многие ответы выше указывают на коллекции программного обеспечения CentOS. Хотя вы можете установить их, они не являются пакетами, поддерживаемыми Red Hat для RHEL.
Кроме того, ответ с верхним голосом дает плохой совет: на RHEL вы не хотите менять /usr/bin/python
, /usr/bin/python2
потому что вы, скорее всего, /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.
Посмотрите вышеупомянутую статью для всего этого и намного более подробно.
Ответ 12
Если вам нужны официальные пакеты RHEL, вы можете использовать RHSCL (коллекции программного обеспечения Red Hat)
Подробнее:
У вас должен быть доступ к серверу портала Red Hat, чтобы читать полные статьи.
Ответ 13
Вот шаги, которые я выполнил для установки 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
Ответ 14
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)
Ответ 15
Для RHEL на Amazon Linux, используя python3, я должен был сделать:
sudo yum install python34-devel
Ответ 16
Полная работа 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
Ответ 17
Просто сделайте очень короткий автономный ответ, чтобы конкурировать с предложениями "установить из источника".
Пакет не называется python3
, но для каждого выпуска Python3 есть один пакет.
yum install python36
вы получите Python 3.6.
Ответ 18
Вы можете установить миниконду (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
Вам нужно будет принять лицензионное соглашение и выбрать некоторые параметры в интерактивном режиме (принять значения по умолчанию). Я верю, что это может быть также установлено как-то тихо.
Ответ 19
Для тех, кто работает на 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