Installer Python 3 sur RHEL
16 réponses
Il est facile de l'installer manuellement:
-
télécharger (il peut y avoir de nouvelles versions sur Python.org ):
$ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
-
Décompresser
$ tar xf Python-3.* $ cd Python-3.*
-
Préparer la compilation
$ ./configure
-
Construire
$ make
-
Installer
$ make install
ou si vous ne voulez pas écraser l'exécutable
python
(plus sûr, au moins sur certains distrosyum
a besoinpython
pour être 2.x, comme pour RHEL6) - vous pouvez installerpython3.*
comme une instance concurrente au défaut du système avec unaltinstall
:$ make altinstall
maintenant si vous voulez un répertoire d'installation alternatif, vous pouvez passer --prefix
au "1519120920 de la commande".
exemple: pour "installer" Python dans /opt/local, il suffit d'ajouter --prefix=/opt/local
.
après l'étape make install
: pour utiliser votre nouvelle installation Python, il se peut que vous ayez encore à ajouter le [prefix]/bin au $PATH
et [prefix] / lib au $LD_LIBRARY_PATH
(en fonction du --prefix
que vous avez passé)
installer à partir de RPM est généralement mieux, parce que:
- vous pouvez installer et désinstaller (correctement) python3.
- le temps d'installation est beaucoup plus rapide . Si vous travaillez dans un environnement cloud avec plusieurs VMs, compiler python3 sur chaque VMs n'est pas acceptable.
Solution 1: Red Hat & EPEL repositories
Rouge Hat a ajouté Python 3.4 pour CentOS 6 et 7 à travers le dépôt EPEL .
malheureusement:
-
pip3
n'est pas emballé à un régime quelconque. Vous devez l'installer manuellement (voir ci-dessous). -
pyvenv
est sur écoute et ne fonctionne pas. Vous devez utiliservirtualenv
.
[EPEL] comment installer Python 3.4 sur CentOS 6 et 7
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
# I guess you would like to install virtualenv or virtualenvwrapper
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
si vous voulez utiliser pyvenv
, vous pouvez faire ce qui suit pour installer pip3
dans votre virtualenv:
pyvenv --without-pip my_env
curl https://bootstrap.pypa.io/get-pip.py | my_env/bin/python
mais si vous voulez le sortir de la boîte, vous pouvez ajouter cette fonction bash (alias) dans votre .bashrc
:
pyvenv() { /usr/bin/pyvenv --without-pip $@; for env in $@; do curl https://bootstrap.pypa.io/get-pip.py | "$env/bin/python"; done; }
Solution 2: SIU Communauté référentiels
Le IUS Communauté fournit quelques up-to-date paquets pour RHEL & CentOS . Les gars derrière sont de Rackspace, donc je pense qu'ils sont assez fiables...
Vérifiez la bonne pension pour vous ici:
https://ius.io/GettingStarted /
[IUS] comment installer Python 3.5 sur CentOS 6
sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm
sudo yum install -y python35u python35u-pip
# I guess you would like to install virtualenv or virtualenvwrapper
sudo pip3.5 install virtualenv
sudo pip3.5 install virtualenvwrapper
Note: Vous avez pyvenv-3.5
disponible hors de la boîte si vous ne voulez pas utiliser virtualenv
.
[IUS] comment installer Python 3.5 sur CentOS 7
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install -y python35u python35u-pip
# I guess you would like to install virtualenv or virtualenvwrapper
sudo pip3.5 install virtualenv
sudo pip3.5 install virtualenvwrapper
Note: vous avez pyvenv-3.5
disponible si vous ne voulez pas utiliser virtualenv
.
en plus de la réponse de gecco, je changerais l'étape 3 de:
./configure
à:
./configure --prefix=/opt/python3
puis après l'installation vous pouvez aussi:
# ln -s /opt/python3/bin/python3 /usr/bin/python3
c'est pour s'assurer que l'installation n'entre pas en conflit avec python installé avec yum.
voir explication que j'ai trouvé sur Internet:
http://www.hosting.com/support/linux/installing-python-3-on-centosredhat-5x-from-source
utilisez les repos 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
(cette dernière commande devra être exécutée à chaque fois que vous voulez utiliser python27 plutôt que la commande par défaut du système.)
vous pouvez télécharger un RPMs source et RPMs binaires pour RHEL6 / CentOS6 à partir de ici
il s'agit d'un backport de la plus récente Fedora développement source rpm à RHEL6 / CentOS6
avec Python 2.7 et 3.3, Red Hat Software Collections inclut maintenant Python 3.4 - tous les travaux sur RHEL 6 et 7.
RHSCL 2.0 docs are at https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections /
plus beaucoup d'articles à developerblog.redhat.com.
modifier
suivre ces instructions pour installer Python 3.4 sur RHEL 6/7 ou 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
Python3 a été récemment ajouté à EPEL7 sous le nom de Python34.
il y a un effort continu (actuellement) pour faire des directives d'empaquetage sur la façon d'empaqueter des choses pour Python3 dans EPEL7.
voir https://bugzilla.redhat.com/show_bug.cgi?id=1219411
et https://lists.fedoraproject.org/pipermail/python-devel/2015-July/000721.html
j'avais le même problème avec le python 2.7. Suivez les étapes ci-dessous pour passer à la version 3.6. Vous pouvez également essayer cette
-
voir avant la mise à niveau la version est 2.x
python --version Python 2.7.5
-
utilisez la commande ci-dessous pour mettre à jour votre python à 3.version x -
yum install python3x
remplacer x avec le numéro de version que vous voulez.
i.e. pour installer python 3.6 execute
yum install python36
-
après cela si vous voulez définir ce python pour votre version par défaut alors dans bashrc ajouter un fichier
vi ~/.bashrc
alias python='python3.6'
-
exécuter la commande bash pour appliquer les paramètres
bash
-
Maintenant, vous pouvez voir la version ci-dessous
python --version Python 3.6.3
si vous voulez des paquets RHEL officiels, vous pouvez utiliser RHSCL (Red Hat Software Collections)
plus de détails:
- Guide to Python 3.3 in RHSCL 1.1
- comment accéder et télécharger les Collections de logiciels Red Hat (RHSCL) et/ou la trousse D'outils de développement Red Hat (DTS)?
vous devez avoir accès au Portail Client Red Hat pour lire l'intégralité article.
Voici les étapes que j'ai suivies pour installer 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
juste pour faire une très brève réponse autonome pour concurrencer les suggestions" installer à partir de la source".
le paquet n'est pas appelé python3
mais il y a un paquet pour chaque version de Python3.
yum install python36
vous donnera Python 3.6.
trois étapes utilisant Python 3.5 par collections de logiciels :
sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash
notez que sudo n'est pas nécessaire pour la dernière commande. Maintenant nous pouvons voir que python 3 est la valeur par défaut pour le shell actuel:
python --version
Python 3.5.1
sautez simplement la dernière commande si vous préférez avoir Python 2 par défaut pour le shell actuel.
maintenant, disons que vos scripts Python 3 vous donnent une erreur comme /usr/bin/env: python3: No such file or directory
. C'est parce que l'installation est habituellement faite sur un chemin inhabituel:
/opt/rh/rh-python35/root/bin/python3
le lien ci-dessus est normalement un lien symbolique. Si vous voulez que python3
soit automatiquement ajouté au $PATH
pour tous les utilisateurs au démarrage, une façon de le faire est d'ajouter un fichier comme:
sudo vim /etc/profile.d/rh-python35.sh
qui aurait quelque chose comme:
#!/bin/bash
PATH=$PATH:/opt/rh/rh-python35/root/bin/
et maintenant après un redémarrage, si nous le faisons
python3 --version
ça devrait marcher. Une exception serait un utilisateur généré automatiquement comme "jenkins" dans un serveur Jenkins qui n'a pas de shell. Dans ce cas, ajouter manuellement le chemin d'accès à $PATH
dans les scripts serait une solution.
enfin, si vous utilisez sudo pip3
pour installer des paquets, mais qu'il vous indique que pip3 ne peut pas être trouvé, il se peut que vous ayez un secure_path dans / etc / sudoers . Vérifier avec sudo visudo
devrait confirmer. Pour utiliser temporairement la norme PATH lorsque vous exécutez des commandes vous pouvez faire, par exemple:
sudo env "PATH=$PATH" pip3 --version
Voir ce question pour plus de détails.
NOTE : il y a un nouveau Python 3.6 par collections de logiciels, mais je ne le recommande pas pour le moment, parce que j'ai eu des maux de tête majeurs en essayant d'installer Pycurl. Pour Python 3.5 ce n'est pas un problème parce que je viens de faire sudo yum install sclo-python35-python-pycurl
qui a fonctionné à partir de la boîte.
si vous êtes sur RHEL et que vous voulez un Python soutenu par Red Hat, utilisez Red Hat Software collections (RHSCL). Les paquets EPEL et IUS ne sont pas supportés par Red Hat. En outre, beaucoup des réponses ci-dessus pointent vers les collections de logiciels CentOS. Bien que vous puissiez les installer, ce ne sont pas les paquets pris en charge par Red Hat pour RHEL.
aussi, la réponse la plus votée donne de mauvais conseils - sur RHEL vous ne voulez pas changer /usr/bin/python
, /usr/bin/python2
parce que vous allez probablement casser yum
et autres outils d'administration RHEL. Jetez un oeil à /bin/yum
, c'est un script Python qui commence par #!/usr/bin/python
. Si vous compilez Python à partir des sources, ne faites pas un make install
comme root. Qui écrira /usr/bin/python
. Si vous cassez yum
il peut être difficile de restaurer votre système.
pour plus d'informations, voir comment installer Python 3, pip, venv, virtualenv, et pipenv sur RHEL sur developers.redhat.com . Il couvre l'installation et l'utilisation de Python 3 à partir de RHSCL, en utilisant des environnements virtuels Python, et un certain nombre de conseils pour travailler avec des collections de logiciels et de travailler avec Python sur RHEL.
en bref, pour installer Python 3.6 via Red Hat Collections de logiciels:
$ 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
pour utiliser une collection de logiciels, vous devez l'activer:
scl enable rh-python36 bash
cependant si vous voulez que Python 3 soit activé en permanence, vous pouvez ajouter ce qui suit: à votre ~/.bashrc puis se déconnecter et revenir à nouveau. Maintenant Python 3 est en permanence sur votre chemin.
# Add RHSCL Python 3 to my login environment
source scl_source enable rh-python36
Note: une fois que vous avez fait cela, taper python
vous donne maintenant Python 3.6 au lieu de python 2.7.
Voir l'article ci-dessus pour tout cela et beaucoup plus de détails.
yum install python34.x86_64
fonctionne si vous avez epel-release
installé cette réponse explique comment, et je confirme qu'il a travaillé sur RHEL 7.3
$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)
$ type python3
python3 is hashed (/usr/bin/python3)
pour RHEL sur Amazon Linux, en utilisant python3 je devais faire:
sudo yum install python34-devel
je vois toutes les réponses comme soit demander de compiler python3 à partir du code ou installer le paquet RPM binaire. Voici une autre réponse pour activer EPEL (paquets supplémentaires pour Enterprise Linux) et ensuite installer python en utilisant yum. Steps for 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
voir Aussi lien