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