J'aimerais installer le dernier Python, qui est 3.6 au moment de ce post. Cependant, le référentiel indique que Python 3.4.2 est la dernière version.
J'ai essayé:
$ Sudo apt-get update
$ Sudo apt-get install python3
python3 is already the newest version.
$ python -V
Python 3.4.2
Pour passer à Python 3.6 sur mon poste de travail Windows, j'ai simplement téléchargé un exe, cliqué plusieurs fois sur "Suivant", et c'est fait. Quelle est la procédure appropriée et officiellement acceptée pour installer Python 3.6 sur Debian Jessie?
Note éditoriale:
Veuillez lire les commentaires de cette réponse.
Debian n'a pas Python 3.6 dans ses référentiels, mais les tests l'ont.
$ Sudo nano /etc/apt/sources.list
# add
deb http://ftp.de.debian.org/debian testing main
$ echo 'APT::Default-Release "stable";' | Sudo tee -a /etc/apt/apt.conf.d/00local
$ Sudo apt-get update
$ Sudo apt-get -t testing install python3.6
$ python3.6 -V
Vous avez demandé:
la procédure appropriée et officiellement acceptée
mais je dois souligner que ce n'est pas une solution officielle car elle utilise des référentiels de test.
Vous pouvez installer Python-3.6
sur Debian 8 comme suit:
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --enable-optimizations --enable-shared
make -j8
Sudo make altinstall
python3.6
Il est recommandé d'utiliser make altinstall
selon le site officiel .
Si vous souhaitez que pip
soit inclus, vous devez ajouter --with-ensurepip=install
à votre appel de configuration. Pour plus de détails, voir ./configure --help
.
Attention:
make install
peut remplacer ou masquer le binaire python.make altinstall
est donc recommandé au lieu demake install
puisqu'il n'installe queexec_prefix/bin/pythonversion
.
Certains packages doivent être installés pour éviter certains problèmes connus, voir: Problèmes de construction courants (mis à jour)
Ubuntu/Debian:
Sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
Alternative à libreadline-dev:
Sudo apt install libedit-dev
Fedora/CentOS/RHEL (aws ec2):
Sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel
Alternative à openssl-devel:
Sudo yum install compat-openssl10-devel --allowerasing
Mise à jour
Vous pouvez télécharger la dernière python-x.y.z.tar.gz
de ici .
Pour définir une version par défaut python et basculer facilement entre elles, vous devez mettre à jour votre update-alternatives
avec la version multiple python.
Supposons que vous ayez installé le python3.7
sur Debian Stretch, utilisez la commande whereis python
pour localiser le binaire (*/bin/python
). par exemple:
/usr/local/bin/python3.7
/usr/bin/python2.7
/usr/bin/python3.5
Ajoutez les versions python:
update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 50
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 40
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 30
Le python3.7
avec le 50
la priorité est maintenant votre valeur par défaut python, le python -V
affichera:
Python 3.7.0b2
Pour basculer entre eux, utilisez:
update-alternatives --config python
Exemple de sortie:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/local/bin/python3.7 50 auto mode
1 /usr/bin/python2.7 40 manual mode
2 /usr/bin/python3.5 30 manual mode
3 /usr/local/bin/python3.7 50 manual mode
Press <enter> to keep the current choice[*], or type selection number:
La recommandation officielle est "vous n'avez pas réellement besoin d'un logiciel plus récent"
Ne souffrez pas du syndrome Shiny New Stuff - DontBreakDebian | Wiki Debian
La plupart des conseils sur cette page sont orientés vers quoi faire si vous voulez que le logiciel soit disponible à l'échelle du système, mais je ne pense pas que ce soit nécessaire dans ce cas.
Si vous récupérez les sources python, construisez l'interpréteur 3.6 en utilisant --prefix
pour contrôler où il se termine, puis utilisez virtualenv
avec le --python
, alors vous pouvez utiliser python 3.6 sans affecter quoi que ce soit en dehors de votre projet.
Le processus pourrait aller quelque chose comme ceci:
$ cd ~
$ mkdir pythonroot
$ mkdir opt
$ mkdir app
$ cd opt
$ wget <python tarball>
$ tar -xvf <python tarball>
$ cd python-3.6
$ ./configure --prefix="$HOME"/pythonroot
$ make
$ make install
$ cd ~
$ cd app
$ virtualenv venv --python ~/pythonroot/bin/python
$ . venv/bin/activate
[venv]$ which python
/home/<user>/pythonroot/bin/python
Si vous allez faire cela, vous voudrez peut-être considérer le --enable-optimizations
flag dans le script Python configure
, qui semble activer certaines fonctionnalités comme l'optimisation guidée par le profil. Il augmente les temps de construction mais semble se traduire par un interprète plus rapide de 10% environ selon certains critères de référence.
Vous voudrez peut-être jeter un œil à pyenv
: https://github.com/yyuu/pyenv . Pour citer le tutoriel pyenv
du laboratoire Amaral:
Auparavant connu sous le nom de Pythonbrew, pyenv vous permet de modifier la version globale de Python, d'installer plusieurs versions de Python, de définir des versions spécifiques du répertoire (projet) Python, et oui de créer/gérer les environnements virtuels python ("virtualenvs"). Tout cela se fait sur des machines de type * NIX (Linux et OS X) sans dépendre de Python lui-même et cela fonctionne au niveau utilisateur - pas besoin de commandes Sudo.
Ma façon préférée est d'utiliser Anaconda ou Miniconda pour conserver la dernière version de python et les packages installés sur Debian).
Tout est soigneusement conservé dans un dossier, ce qui le rend très facile à supprimer plus tard si vous le souhaitez. Le programme d'installation ajoute également le chemin d'accès à votre bashrc (ajoutez-le vous-même si vous utilisez un autre shell).
Il est livré avec pip, et aussi conda qui est un autre gestionnaire de paquets qui peut être bon pour des pacakges plus complexes comme numpy. Miniconda est une installation sans système d'exploitation, et Anaconda est une installation complète avec de nombreux packages, principalement conçus pour l'analyse des données.
Rapidement:
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Lisez et acceptez la licence, si vous n'utilisez pas le chemin d'ajout bash: export PATH="/home/$USER/miniconda3/bin:$PATH"
Tester:
$ python --version
Python 3.6.0 :: Continuum Analytics, Inc.
Installer depuis PyPi:
# pip install fava
Installer depuis conda:
# conda install numpy
Lorsque vous souhaitez le supprimer, supprimez le dossier ~/miniconda3
et le chemin dans votre bashrc.
Debian n'a pas Python 3.6 dans ses référentiels. Voici un instantané de l'état actuel de Python3:
wheezy (oldstable) (python): interactive high-level object-oriented language (default python3 version)
3.2.3-6: all
jessie (stable) (python): interactive high-level object-oriented language (default python3 version)
3.4.2-2: AMD64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x
stretch (testing) (python): interactive high-level object-oriented language (default python3 version)
3.5.1-4: AMD64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x
sid (unstable) (python): interactive high-level object-oriented language (default python3 version)
3.5.1-4: alpha AMD64 arm64 armel armhf hppa hurd-i386 i386 kfreebsd-AMD64 kfreebsd-i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 x32
Vous pouvez les vérifier ici .
Vous pouvez installer 3.6 depuis la source ou en utilisant quelque chose comme Linuxbrew pour une installation du répertoire personnel.
Avec ça
Sudo echo "http://ftp.fr.debian.org/debian testing main" >> /etc/apt/sources.list
Sudo apt-get update
Sudo apt-get install -y python3.6
Travaillez avec succès.
Plus: définissez python3.6 par défaut
Sudo alias python=/usr/bin/python3.6
Maintenant :
python --version
Python 3.6
Python 3.6 (bien que rc1
) vient d'arriver dans Debian experimental. J'ai pu le construire avec succès sur Debian stable (Jessie). Voir les étapes finales du build collé ci-dessous.
Cependant, cela ne signifie pas qu'il s'installera correctement et pas causer des problèmes. Une prochaine étape raisonnable serait de le tester sur un test VM de stable. Si quelqu'un s'en soucie, je pourrais essayer - ou quelqu'un d'autre pourrait essayer.
Une bonne version devrait arriver sous Debian unstable sous peu.
dh_builddeb -a
dpkg-deb: building package `python3.6' in `../python3.6_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `python3.6-venv' in `../python3.6-venv_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `libpython3.6-stdlib' in `../libpython3.6-stdlib_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `python3.6-minimal' in `../python3.6-minimal_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `libpython3.6-minimal' in `../libpython3.6-minimal_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `libpython3.6' in `../libpython3.6_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `python3.6-dev' in `../python3.6-dev_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `libpython3.6-dev' in `../libpython3.6-dev_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `python3.6-dbg' in `../python3.6-dbg_3.6.0~rc1-1_AMD64.deb'.
dpkg-deb: building package `libpython3.6-dbg' in `../libpython3.6-dbg_3.6.0~rc1-1_AMD64.deb'.
dpkg-genchanges >../python3.6_3.6.0~rc1-1_AMD64.changes
dpkg-genchanges: including full source code in upload
dpkg-source --after-build python3.6-3.6.0~rc1
dpkg-buildpackage: full upload (original source is included)
Now running lintian...
W: python3.6 source: newer-standards-version 3.9.8 (current is 3.9.6)
N: 56 tags overridden (26 errors, 27 warnings, 3 info)
Finished running lintian.
Depuis septembre 2019, la dernière écurie Debian (buster) a python 3.7. Ainsi, la procédure appropriée et officiellement acceptée serait désormais de mise à niveau vers debian buster .