Установка Python 3 на RHEL - PullRequest
107 голосов
/ 11 ноября 2011

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

yum search python3

Который возвратил No matches found for: python3

Затем:

yum search python

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

Ответы [ 18 ]

215 голосов
/ 27 апреля 2014

Установка с 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
163 голосов
/ 13 ноября 2011

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

  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 может потребоваться добавить [префикс] / bin в $PATH и [префикс] / lib в$LD_LIBRARY_PATH (в зависимости от пройденного вами --prefix)

30 голосов
/ 29 июля 2012

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

9 голосов
/ 27 августа 2015

Наряду с Python 2.7 и 3.3 в коллекцию программного обеспечения Red Hat теперь входит Python 3.4 - все они работают как на RHEL 6, так и на 7.

Документы RHSCL 2.0 находятся на https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/

Plus lotстатей на 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
9 голосов
/ 30 января 2014

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

9 голосов
/ 03 февраля 2013

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

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

8 голосов
/ 16 июля 2015

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

6 голосов
/ 09 июля 2018

Я вижу все ответы как с просьбой скомпилировать 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

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

5 голосов
/ 05 апреля 2018

У меня была такая же проблема при использовании Python 2.7. Выполните следующие шаги для успешного обновления до 3.6. Вы также можете попробовать это-

  1. См. Перед обновлением версия 2.x

    python --version
    Python 2.7.5
    
  2. Используйте приведенную ниже команду для обновления вашего питона до версии 3.x -

    yum install python3x

    замените x на номер нужной версии.

    т.е. для установки python 3.6 выполните

    yum install python36
    
  3. После этого, если вы хотите установить этот питон для вашей версии по умолчанию, тогда в bashrc file add

    vi ~ / .bashrc

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

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

    python --version
    Python 3.6.3
    
4 голосов
/ 06 марта 2017

Три шага с использованием 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, который работал из коробки.

...