Trzy kroki przy użyciu Pythona 3.5 przez kolekcje oprogramowania :
sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash
Zauważ, że sudo nie jest potrzebne w ostatnim poleceniu. Teraz widzimy, że Python 3 jest domyślnym dla bieżącej powłoki:
python --version
Python 3.5.1
Po prostu pomiń ostatnie polecenie, jeśli wolisz, aby Python 2 był domyślnym dla bieżącej powłoki.
Powiedzmy teraz, że twoje skrypty Python 3 powodują błąd, taki jak /usr/bin/env: python3: No such file or directory
. Dzieje się tak, ponieważ instalacja zwykle odbywa się na nietypowej ścieżce:
/opt/rh/rh-python35/root/bin/python3
Powyższe normalnie byłoby dowiązaniem symbolicznym. Jeśli chcesz python3
być automatycznie dodawany do $PATH
wszystkich użytkowników podczas uruchamiania, jednym ze sposobów jest dodanie pliku takiego jak:
sudo vim /etc/profile.d/rh-python35.sh
Który miałby coś takiego:
#!/bin/bash
PATH=$PATH:/opt/rh/rh-python35/root/bin/
A teraz po ponownym uruchomieniu, jeśli to zrobimy
python3 --version
Powinno po prostu działać. Jedynym wyjątkiem byłby automatycznie generowany użytkownik, taki jak „jenkins”, na serwerze Jenkins, który nie ma powłoki. W takim przypadku ręczne dodanie ścieżki do $PATH
w skryptach byłoby jednym ze sposobów.
Wreszcie, jeśli używasz sudo pip3
do instalowania pakietów, ale mówi ci, że nie można znaleźć pip3, może to oznaczać, że masz bezpieczną_ścieżkę w / etc / sudoers . Sprawdzenie z sudo visudo
powinno to potwierdzić. Aby tymczasowo użyć standardowej PATH podczas uruchamiania poleceń, możesz na przykład:
sudo env "PATH=$PATH" pip3 --version
Zobacz to pytanie, aby uzyskać więcej informacji.
UWAGA : Jest nowszy Python 3.6 od Software Collections, ale nie polecałbym go w tej chwili, ponieważ miałem poważne bóle głowy, próbując zainstalować Pycurl. W przypadku Pythona 3.5 nie stanowi to problemu, ponieważ właśnie zrobiłem, sudo yum install sclo-python35-python-pycurl
co zadziałało po wyjęciu z pudełka.