web-dev-qa-db-fra.com

Comment installer Python 3.6?

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?

118
dvtan

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 de make install puisqu'il n'installe que exec_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: 
171
GAD3R

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.

35
Gregory Nisbet

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.

13
schaiba

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.

11
alexjj

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.

3
Dennis Chen

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
3
Sean S

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.
1
Faheem Mitha

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 .

0
TamaMcGlinn