Я пытаюсь установить python3 на RHEL, выполнив следующие шаги:
yum search python3
Что вернуло No matches found for: python3
Далее следуют:
yum search python
Ни один из результатов поиска не содержал python3. Что мне делать дальше?
Я пытаюсь установить python3 на RHEL, выполнив следующие шаги:
yum search python3
Что вернуло No matches found for: python3
Далее следуют:
yum search python
Ни один из результатов поиска не содержал python3. Что мне делать дальше?
Его легко установить вручную:
Загрузка (могут быть более свежие релизы на 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
)
Установка из RPM, как правило, лучше, потому что:
Red Hat добавил через репозиторий EPEL:
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
В 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'
Сообщество IUS предоставляет несколько современных пакетов для RHEL & CentOS. Ребята сзади из Rackspace, так что я думаю, что они вполне заслуживают доверия...
Проверьте правильное РЕПО для вас здесь:
https://ius.io/GettingStarted/
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
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
В дополнение к ответу 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
Вы можете загрузить исходные RPM и бинарные RPM для RHEL6/CentOS6 из здесь
Это backport из новейшей разработки Fedora источник rpm до RHEL6/CentOS6
Используйте репозитории 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, а не по умолчанию по умолчанию.)
Наряду с 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.
редактировать
# 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
Все ответы я вижу либо с просьбой скомпилировать 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
Также смотрите ссылку
У меня была та же проблема с использованием 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
Три шага с использованием 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
который работал из коробки.
Если вы используете 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.
Посмотрите вышеупомянутую статью для всего этого и намного более подробно.
Если вам нужны официальные пакеты RHEL, вы можете использовать RHSCL (коллекции программного обеспечения Red Hat)
Подробнее:
У вас должен быть доступ к серверу портала Red Hat, чтобы читать полные статьи.
Вот шаги, которые я выполнил для установки 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
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
Полная работа 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
Просто сделайте очень короткий автономный ответ, чтобы конкурировать с предложениями "установить из источника".
Пакет не называется python3
, но для каждого выпуска Python3 есть один пакет.
yum install python36
вы получите Python 3.6.
Вы можете установить миниконду (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
Вам нужно будет принять лицензионное соглашение и выбрать некоторые параметры в интерактивном режиме (принять значения по умолчанию). Я верю, что это может быть также установлено как-то тихо.
Для тех, кто работает на 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