J'essaie d'installer python3 sur RHEL en procédant comme suit:
yum search python3
Qui a retourné No matches found for: python3
Suivi par:
yum search python
Aucun des résultats de la recherche ne contenait python3. Que devrais-je essayer ensuite?
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
Unzip
$ 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 certaines distributions, yum
a besoin de python
pour être 2.x, comme pour RHEL6) - vous pouvez installer python3.*
en tant qu'instance simultanée avec la valeur système par défaut avec altinstall
:
$ make altinstall
Maintenant, si vous voulez un autre répertoire d’installation, vous pouvez passer --prefix
à la commande configure
.
Exemple: pour 'installer' Python dans/opt/local, ajoutez simplement --prefix=/opt/local
.
Après l'étape make install
: Pour utiliser votre nouvelle installation Python, il se peut que vous deviez encore ajouter le [préfixe]/bin au $PATH
et le préfixe/lib au $LD_LIBRARY_PATH
(en fonction du --prefix
que vous avez transmis).
L'installation à partir de RPM est généralement préférable, car:
Red Hat a ajouté Python 3.4 pour CentOS 6 et 7 via le référentiel EPEL.
Malheureusement:
pip3
n'est fourni dans aucun RPM. Vous devez installer manuellement (voir ci-dessous).pyvenv
est en panne et ne fonctionne pas. Vous devez utiliser virtualenv
.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 souhaitez utiliser pyvenv
, vous pouvez procéder comme 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 l'avoir immédiatement, 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; }
La communauté IUS fournit des packages mis à jour pour RHEL & CentOS. Les gars derrière sont de Rackspace, donc je pense qu’ils sont assez dignes de confiance ...
Vérifiez le bon repo pour vous ici:
https://ius.io/GettingStarted/
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
Remarque: vous disposez de pyvenv-3.5
prêt à l'emploi si vous ne souhaitez pas utiliser virtualenv
.
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
Remarque: vous disposez de pyvenv-3.5
prêt à l'emploi si vous ne souhaitez pas utiliser virtualenv
.
En plus de la réponse de gecco, je changerais l'étape 3 en:
./configure
à:
./configure --prefix=/opt/python3
Ensuite, après l'installation, vous pouvez également:
# ln -s /opt/python3/bin/python3 /usr/bin/python3
C'est pour s'assurer que l'installation ne sera pas en conflit avec python installé avec yum.
Voir les explications que j'ai trouvées sur Internet:
http://www.hosting.com/support/linux/installing-python-3-on-centosredhat-5x-from-source
Vous pouvez télécharger un RPM source et un RPM binaire pour RHEL6/CentOS6 à partir de ici
Ceci est un backport du dernier développement de Fedora Source à rpm vers RHEL6/CentOS6
Utilisez les dépôts 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 souhaitez utiliser python27 plutôt que la valeur par défaut du système.)
Outre Python 2.7 et 3.3, Red Hat Software Collections inclut désormais Python 3.4, qui fonctionnent tous à la fois sur RHEL 6 et 7.
Les documents RHSCL 2.0 sont sur https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/
Plus beaucoup d'articles sur developerblog.redhat.com.
modifier
# 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 récemment été ajouté à EPEL7 en tant que Python34.
Des efforts sont en cours (actuellement) pour élaborer des directives de packaging sur la manière de conditionner les éléments 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 en utilisant le python 2.7. Suivez les étapes ci-dessous pour passer avec succès à la version 3.6 . Vous pouvez aussi essayer celui-ci.
Voir avant de mettre à jour la version est 2.x
python --version
Python 2.7.5
Utilisez la commande ci-dessous pour mettre à jour votre python vers la version 3.x.
yum install python3x
remplacez x par le numéro de version souhaité.
c'est-à-dire 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, dans bashrc file add
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
Trois étapes pour utiliser Python 3.5 de 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. Nous pouvons maintenant voir que python 3 est la valeur par défaut pour le shell actuel:
python --version
Python 3.5.1
Ignorez simplement la dernière commande si vous préférez utiliser Python 2 par défaut pour le shell actuel.
Supposons maintenant que vos scripts Python 3 génèrent une erreur telle que /usr/bin/env: python3: No such file or directory
. En effet, l'installation est généralement effectuée sur un chemin inhabituel:
/opt/rh/rh-python35/root/bin/python3
Ce qui précède serait normalement un lien symbolique. Si vous souhaitez que python3
soit automatiquement ajouté à $PATH
pour tous les utilisateurs au démarrage, vous pouvez, pour ce faire, ajouter un fichier tel que:
Sudo vim /etc/profile.d/rh-python35.sh
Ce 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
Cela devrait juste marcher. Une exception serait un utilisateur généré automatiquement tel que "jenkins" sur 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 paquetages, mais que cela signifie que pip3 est introuvable, il se peut que vous ayez un chemin_sécurisé dans / etc/sudoers. Vérifier avec Sudo visudo
devrait confirmer cela. Pour utiliser temporairement la norme CHEMIN lorsque vous exécutez des commandes, vous pouvez le faire, par exemple:
Sudo env "PATH=$PATH" pip3 --version
Voir this question pour plus de détails.
NOTE: Il existe une nouvelle version de Python 3.6, Software Collections, mais je ne le recommanderais pas pour l'instant, car j'avais de gros maux de tête lorsque j'essayais d'installer Pycurl. Pour Python 3.5, ce n’est pas un problème car je viens de faire Sudo yum install sclo-python35-python-pycurl
, qui a fonctionné immédiatement.
Je vois toutes les réponses comme demandant soit de compiler python3 à partir de code, soit d’installer le paquetage binaire RPM. Voici une autre réponse pour activer EPEL (Extra Packages for Enterprise Linux), puis installer python à l’aide de yum. Étapes pour 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 link
Si vous êtes sur RHEL et que vous voulez un système Python supporté par Red Hat, utilisez les collections Red Hat Software (RHSCL). Les packages EPEL et IUS ne sont pas pris en charge par Red Hat. De nombreuses réponses ci-dessus concernent également les collections de logiciels CentOS. Bien que vous puissiez les installer, ils ne sont pas les packages pris en charge par Red Hat pour RHEL.
En outre, la réponse la plus votée donne de mauvais conseils - Sur RHEL, vous ne souhaitez pas modifier /usr/bin/python
, /usr/bin/python2
car vous risquez de casser yum
et d'autres outils d'administration RHEL. Regardez /bin/yum
, il s’agit d’un script Python commençant par #!/usr/bin/python
. Si vous compilez Python à partir des sources, ne faites pas un make install
en tant que root. Cela écrasera /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 on developers.redhat.com . Il couvre l'installation et l'utilisation de Python 3 à partir de RHSCL, à l'aide d'environnements virtuels Python, ainsi que de plusieurs astuces pour l'utilisation de collections de logiciels et l'utilisation de Python sur RHEL.
En résumé, pour installer Python 3.6 à l’aide de Red Hat Software Collections:
$ 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
Toutefois, si vous souhaitez activer Python 3 de manière permanente, vous pouvez ajouter les éléments suivants à votre ~/.bashrc, puis vous déconnecter et vous reconnecter. Maintenant, Python 3 est en permanence sur votre chemin.
# Add RHSCL Python 3 to my login environment
source scl_source enable rh-python36
Remarque: 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.
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
Si vous voulez des packages RHEL officiels, vous pouvez utiliser RHSCL (Red Hat Software Collections).
Plus de détails:
Vous devez avoir accès au portail client Red Hat pour pouvoir lire des articles complets.
Pour RHEL sur Amazon Linux, en utilisant python3, je devais faire:
Sudo yum install python34-devel
yum install python34.x86_64
fonctionne si vous avez installé epel-release
, qui cette réponse explique comment, et j'ai confirmé que cela fonctionnait avec RHEL 7.3
$ cat /etc/*-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)
$ type python3
python3 is hashed (/usr/bin/python3)
Plein de travail 36 quand SCL n'est pas disponible (basé sur l'entrée Joys)
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
Sudo yum install python34-setuptools
Sudo mkdir /usr/local/lib/python3.6
Sudo mkdir /usr/local/lib/python3.6/site-packages
Sudo easy_install-3.6 pip
Enfin activer l'environnement ...
pyvenv-3.6 py3
source py3/bin/activate
Puis python3
Vous pouvez installer miniconda ( https://conda.io/miniconda.html ). C'est un peu plus que simplement Python 3.7, mais l'installation est très simple.
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O
Sudo yum install bzip2
bash Miniconda3-latest-Linux-x86_64.sh
Vous devrez accepter le contrat de licence et choisir certaines options en mode interactif (accepter les valeurs par défaut) ... Je pense qu'il peut également être installé en mode silencieux.
Pour ceux qui travaillent sur AWS EC2 RHEL 7.5, (tilisez Sudo), activez le repo requis.
yum-config-manager --enable rhui-REGION-rhel-server-optional
yum-config-manager --enable rhui-REGION-rhel-server-rhscl
Installez Python 3.6
yum install rh-python36
Installer d'autres dépendances
yum install rh-python36-numpy rh-python36-scipy rh-python36-python-tools rh-python36-python-six