web-dev-qa-db-fra.com

Comment mettre à niveau vers Python 3.6 avec conda?

Je suis nouveau dans la gestion de paquets Conda et je souhaite obtenir la dernière version de Python pour utiliser des chaînes de caractères dans mon code. Ma version actuelle est (python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

Comment pourrais-je passer à Python 3.6?

126
Aryaman

Anaconda n'a pas mis à jour python en interne vers 3.6.

a) Méthode 1

  1. Si vous voulez mettre à jour, vous tapez conda update python
  2. Pour mettre à jour anaconda, tapez conda update anaconda
  3. Si vous souhaitez mettre à niveau entre les versions majeures python telles que la version 3.5 vers la version 3.6, vous devrez procéder à la mise à niveau.

    conda install python==$pythonversion$
    

b) Méthode 2 - Créer un nouvel environnement (Meilleure méthode)

conda create --name py36 python=3.6

c) Obtenir le dernier python absolu (3.6.5 au moment de la rédaction)

conda create --name py365 python=3.6.5 --channel conda-forge

Vous pouvez voir tout cela de ici

Voir aussi ceci pour force pgrade

EDIT: Anaconda a maintenant une version Python 3.6 ici

187
Moulick

Créer un nouvel environnement va installer python 3.6:

$ conda create --name 3point6 python=3.6
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/dstansby/miniconda3/envs/3point6:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0     
    pip:        9.0.1-py36_1 
    python:     3.6.0-0      
    readline:   6.2-2        
    setuptools: 27.2.0-py36_0
    sqlite:     3.13.0-0     
    tk:         8.5.18-0     
    wheel:      0.29.0-py36_0
    xz:         5.2.2-1      
    zlib:       1.2.8-3 
37
David Stansby

J'ai trouvé cette page avec des instructions détaillées pour mettre à niveau Anaconda vers une version majeure plus récente de Python (à partir d'Anaconda 4.0+). Première,

conda update conda
conda remove argcomplete conda-manager

Je devais aussi conda remove quelques paquets ne figurant pas sur la liste officielle:

  • backports_abc
  • belle soupe
  • blaze-core

Selon les packages installés sur votre système, vous pouvez obtenir des erreurs supplémentaires UnsatisfiableError - ajoutez-les simplement à la liste de suppression. Ensuite, installez la version de Python,

conda install python==3.6

qui prend un certain temps, après quoi un message indique à conda install anaconda-client, alors je

conda install anaconda-client

qui a dit qu'il est déjà là. Enfin, en suivant les instructions,

conda update anaconda

Je l'ai fait dans l'invite de commande Windows 10, mais les choses devraient être similaires dans Mac OS X.

21
Christian Tremblay

Dans le passé, j'ai trouvé assez difficile d'essayer de mettre à niveau sur place.

Remarque: mon cas d'utilisation pour Anaconda est un environnement Python tout-en-un. Je ne m'embête pas avec des environnements virtuels distincts. Si vous utilisez conda pour créer des environnements, cela peut s'avérer destructif, car conda crée des environnements avec des liens fixes dans votre répertoire Anaconda/envs.

Donc, si vous utilisez des environnements, vous voudrez peut-être d'abord exporter vos environnements . Après avoir activé votre environnement, faites quelque chose comme:

conda env export > environment.yml

Après avoir sauvegardé vos environnements, si nécessaire, vous pouvez supprimer votre ancien Anaconda (très simple pour désinstaller Anaconda):

$ rm -rf ~/anaconda3/

et remplacez-le en téléchargeant le nouvel Anaconda, par exemple. Linux, 64 bits:

$ cd ~/Downloads
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh 

( voir ici pour une version plus récente ),

puis en l'exécutant:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 
15
Aaron Hall

J'utilise un Mac OS Mojave

Ces 4 étapes ont fonctionné pour moi.

  1. conda update conda
  2. conda install python==3.6
  3. conda install anaconda-client
  4. conda update anaconda
7
Abdul Rahman Hafez

Meilleure méthode j'ai trouvé:

source activate old_env
conda env export > old_env.yml

Puis traitez-le avec quelque chose comme ceci:

with open('old_env.yml', 'r') as fin, open('new_env.yml', 'w') as fout:
    for line in fin:
        if 'py35' in line:  # replace by the version you want to supersede
            line = line[:line.rfind('=')] + '\n'
        fout.write(line)

puis éditez manuellement la première ligne (name: ...) et la dernière ligne (prefix: ...) pour refléter le nouveau nom de votre environnement et exécutez:

conda env create -f new_env.yml

vous devrez peut-être supprimer ou modifier manuellement l'épingle de version de quelques paquetages pour lesquels la version épinglée de old_env est jugée incompatible ou manquante pour la nouvelle version python.

Je souhaite qu'il y ait un moyen intégré, plus facile ...

0
Alex