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