Comment changer l'environnement python Anaconda par défaut

170

J'ai installé Anaconda et créé deux environnements supplémentaires: py3k (qui contient Python 3.3) et py34 (qui contient Python 3.4). En plus de ceux-ci, j'ai un environnement par défaut nommé 'root' que le programme d'installation d'Anaconda a créé par défaut et qui contient Python 2.7. Ce dernier est celui par défaut, chaque fois que je lance 'ipython' depuis le terminal, il me donne la version 2.7. Pour travailler avec Python 3.4, je dois émettre les commandes (dans le shell)

source activate py34
ipython

qui changent l'environnement par défaut en Python 3.4. Cela fonctionne bien, mais c'est ennuyeux car la plupart du temps je travaille sur Python 3.4, au lieu de Python 2.7 (que je tiens à des fins d'enseignement, c'est une histoire plutôt longue). Quoi qu'il en soit, j'aimerais savoir comment changer l'environnement par défaut en Python 3.4, sachant que je ne veux pas tout réinstaller à partir de zéro.

user2734434
la source
7
avez-vous envisagé d'utiliser source activate py34dans votre .bashrc?
cel
1
Merci pour votre réponse. Je ne l'ai pas essayé car je pense qu'il n'est pas possible d'appeler la source activate à partir d'un script bash, car la commande source doit être exécutée dans le même shell, pas dans un sous-shell. J'ai essayé de mettre les deux lignes ci-dessus dans un script bash, et je peux dire que cela ne fonctionne pas.
user2734434
4
J'ai CONDA_ROOT="/Users/bla/miniconda"et source ${CONDA_ROOT}/bin/activate ${CONDA_ROOT}/envs/empty &> /dev/nulldans mon .bashrcet il semble bien fonctionner.
cel
1
Je pense que ce .bashrcn'est pas un script, mais qu'il provient du nouveau shell, vous ne pouvez donc pas le vérifier en exécutant un script bash.
cel
3
@ user2734434 le fichier bashrc provient du début de la session, donc si vous le mettez source activatededans, cela affectera l'environnement shell.
asmeurer

Réponses:

86

Si vous souhaitez simplement passer à un autre environnement, utilisez

source activate environment-name

(vous pouvez créer environment-nameavec `conda create)


En général, il est préférable de créer simplement de nouveaux environnements. Cependant, si vous souhaitez vraiment changer la version Python dans l' environnement par défaut , vous pouvez le faire comme suit:

Tout d'abord, assurez-vous que vous disposez de la dernière version de conda en exécutant

conda update conda

Puis cours

conda install python=3.5

Cela tentera de mettre à jour tous vos packages de votre environnement racine vers les versions Python 3. Si ce n'est pas possible (par exemple, parce qu'un paquet n'est pas construit pour Python 3.5), il vous donnera un message d'erreur indiquant quel (s) paquet (s) a causé le problème.

Si vous avez installé des packages avec pip, vous devrez les réinstaller.

asmeureur
la source
1
@flutefreak Cela fonctionnera actuellement sous Windows (exécutez d' conda update condaabord pour vous assurer que vous avez la dernière version). Je mettrai à jour la réponse.
asmeurer
126
Cette réponse ne semble pas se connecter à la question, qui concerne la modification de l'environnement par défaut.
Bob
16
@asmeurer Mais ce n'est pas ce qui a été demandé. Il ne veut mettre à jour les packages dans aucun env. Il veut faire de py34 l'environnement par défaut, pour être actif sans intervention, donc py34 est actif avant d'envoyer la commande "source activate".
Bob
20
Je dois être d'accord avec @Bob ici. Les packages de l'environnement racine seront mis à jour vers la version 3.5, ce qui peut avoir résolu le problème spécifique de l'affiche d'origine. Mais lorsque vous ouvrez une invite, vous serez toujours dans l'environnement racine, vous n'avez donc pas spécifié un autre environnement par défaut. Étant donné que tous ceux qui veulent y parvenir et googler se retrouvent à cette question, il serait préférable que les questions d'origine reçoivent également une réponse. Peut-être que changer l'environnement par défaut en autre chose que root n'est pas possible?
arjan
4
Cela ne fonctionne pas pour moi. Ma valeur par défaut est python 3.4, l'utilisation de l'indicateur python=3.5n'a pas mis à niveau python de 3.4 à 3.5 ... Des suggestions?
WillZ
56

Présentation
Certaines personnes ont plusieurs environnements Anaconda avec différentes versions de python pour des raisons de compatibilité. Dans ce cas, vous devez disposer d'un script définissant votre environnement par défaut. Avec cette méthode, vous pouvez conserver les versions de python que vous utilisez dans vos environnements.

Ce qui suit suppose que nom_environnement est le nom de votre environnement

Mac / Linux:
modifiez votre profil bash afin que la dernière ligne soit source activate environment_name. Sous Mac OSX, c'est ~ / .bash_profile, dans d'autres environnements, cela peut être ~ / .bashrc

Exemple:
voici comment je l'ai fait sur Mac OSX

  1. Ouvrez le terminal et tapez:

    nano ~/.bash_profile

  2. Allez à la fin du fichier et tapez ce qui suit, où "p3.5" est mon environnement:

    source activate p3.5

  3. Quitter le fichier. Démarrez une nouvelle fenêtre de terminal.

  4. Tapez ce qui suit pour voir quel environnement est actif

    conda info -e

Le résultat montre que j'utilise mon environnement p3.5 par défaut.

Pour Windows:
créez un fichier de commande (.cmd) avec activate environment_nameet suivez ces instructions pour l'exécuter chaque fois que vous ouvrez une invite de commande

  1. Créez une commande de fichier batch, par exemple "my_conda.cmd", placez-la dans le dossier Application Data.
  2. Configurez-le pour qu'il démarre automatiquement à chaque ouverture cmd. Ce paramètre se trouve dans le registre:
    clé: HKCU \ SOFTWARE \ Microsoft \ Command
    Valeur du processeur :
    type AutoRun : REG_EXPAND_SZ
    données: "% AppData% \ my_conda.cmd"

à partir de cette réponse: https://superuser.com/a/302553/143794

FistOfFury
la source
1
Merci beaucoup. J'ai trouvé qu'avec ma version de Mac, je ne pouvais pas me débarrasser de Python 2 - j'ai donc suivi l'action recommandée pour configurer deux environnements distincts, mais c'était très ennuyeux de devoir se souvenir d'activer l'environnement sur chaque nouvelle fenêtre de terminal. Cela marche!
Livvy Jeffs
Cela conduit à un tuyau cassé et à une invite de commande gelée lorsque je fais cela sous Windows 10.
aaronsnoswell
Quelqu'un sur Windows 10 a plus de chance avec cela?
Wassadamo
3
Cela devrait être la réponse acceptée (au moins pour Conda basé sur unix)!
Simon Van Machin
50

Sous Linux, il existe un moyen plus simple de définir l'environnement par défaut en modifiant ~/.bashrcou ~/.bash_profile à la fin, vous trouverez quelque chose comme

# added by Anaconda 2.1.0 installer
export PATH="~/anaconda/bin:$PATH"

Remplacez-le par

# set python3 as default
export PATH="~/anaconda/envs/python3/bin:$PATH"

et c'est tout ce qu'il y a à faire.

Jev
la source
3
Et quelle est la question?
Dieter Meemken
J'ai essayé cette solution, mais elle montre toujours anaconda2 sur mon chemin, des idées?
William Ross
10
Cela ne définit pas l'environnement par défaut. Il semble contourner conda et le simule en pensant que "python3" est la valeur par défaut. "conda info -e" affiche toujours "root" comme environnement actuel. Je suis toujours à la recherche d'un moyen de dire à conda quelle est la valeur par défaut.
MrMas
8
Cela ne définit pas l'environnement par défaut du point de vue de conda. Il semble contourner conda et le simule en pensant que "python3" est la valeur par défaut. "conda info -e" affiche toujours "root" comme environnement actuel. Pour résoudre ce problème, vous devez également définir CONDA_PREFIX et CONDA_DEFAULT_ENV. Même dans ce cas, les réponses sont toujours un hack; pourquoi ne pas simplement lancer 'source activate <nouvel environnement par défaut>' puisque cela est déjà fourni avec conda comme moyen "intégré" d'accomplir cela.
MrMas
Existe-t-il un .bashrcou .bash_profilesur Windows 10? J'en ai trouvé un sous cygwin en suivant ce jattenberg.github.io/PDS-Fall-2013/assets/install/… . Mais je ne suis pas sûr que ce soit ce que je devrais changer pour obtenir la fonctionnalité souhaitée par l'OP.
Wassadamo
14

Pour Windows, Anaconda est livré avec Anaconda Prompt qui est un raccourci vers cmd et peut être utilisé pour exécuter des commandes conda sans ajouter d'anaconda dans la variable PATH. Trouvez son emplacement, copiez et renommez la copie (dites myenv_prompt). Cliquez avec le bouton droit sur myenv_prompt et sélectionnez les propriétés dans le menu contextuel.

entrez la description de l'image ici

Le formulaire Cible de la fenêtre Propriétés doit déjà être rempli de texte, quelque chose comme %windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ Il y a trois parties de cette commande 1) start ... \ cmd.exe 2) run ... \ acitvate.bat avec l'environnement 3) ... \ Miniconda3 \

Changez la 3ème partie en chemin de l'environnement (disons myenv) que vous voulez par défaut, c'est-à-dire remplissez le formulaire Target quelque chose comme%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

Maintenant myenv_prompt agira comme raccourci pour démarrer cmd avec myenv comme environnement par défaut pour python. Ce raccourci peut être conservé dans le menu Démarrer ou épinglé dans la barre des tâches.

Un avantage de cette méthode est que vous pouvez créer quelques raccourcis ayant chacun un environnement différent comme environnement par défaut. Vous pouvez également définir le dossier par défaut en remplissant Démarrer sous la forme de la fenêtre Propriétés

J'espère que cela t'aides

PS: Il n'est pas nécessaire de trouver Anaconda Prompt et peut être fait en changeant la cible de n'importe quel raccourci. Mais vous aurez besoin de connaître le chemin de cmd.exe et d'activer.bat

Kushdesh
la source
2
Cela devrait être la meilleure réponse
James McCormac
J'utilise cette méthode, mais ma première partie est un peu différente: C:\Windows\System32\cmd.exe /c start ""je ne sais pas comment je suis arrivé à cette solution, mais voici un article que j'ai fait concernant sa syntaxe
xtian
8

Changement permanent

conda install python={version}

Changer temporairement

Afficher vos environnements

exécuter conda info --envssur la fenêtre de votre terminal ou une invite Anconda

S'il ne montre pas l'environnement que vous souhaitez installer

exécuter conda create -n py36 python=3.6 anacondapour python 3.6 changer la version selon vos préférences

Activation d'un environnement (utilisez l'invite Anaconda)

exécutez activate envnmeenvnme que vous pouvez trouver par cette commande conda info --envscomme exemple lorsque vous l'exécutez conda info --envsshow

base * C:\Users\DulangaHeshan\Anaconda3 py36 C:\Users\DulangaHeshan\Anaconda3\envs\py36

puis courir activate py36

pour vérifier courir python --version

Sous Windows, il est recommandé de désactiver un environnement avant d'en activer un autre. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment

Dulanga Heshan
la source
3
Je pense que l'OP veut une solution qui change l'environnement de base en py36 afin qu'ils n'aient pas à s'exécuter à activate py36chaque fois au démarrage.
Wassadamo
6

La bonne réponse (en décembre 2018) est ... vous ne pouvez pas. La mise à niveau conda install python=3.6peut fonctionner, mais peut-être pas si vous avez des packages nécessaires, mais ne peuvent pas être désinstallés.

Anaconda utilise un environnement par défaut nommé baseet vous ne pouvez pas créer un nouvel environnement (par exemple python 3.6) avec le même nom. C'est intentionnel. Si vous voulez que votre Anaconda de base soit python 3.6, la bonne façon de le faire est d'installer Anaconda pour python 3.6. En tant que gestionnaire de packages, l'objectif d'Anaconda est de rendre différents environnements encapsulés, d'où la raison pour laquelle vous devez les activer à la source et pourquoi vous ne pouvez pas simplement changer tranquillement le package de base à volonté, car cela pourrait entraîner de nombreux problèmes sur les systèmes de production.

cgnorthcutt
la source
Que faire si mon environnement de base est défectueux et que je souhaite le remplacer par un autre qui fonctionne?
endolithe
@endolith Que faire si mon environnement de base est défectueux et que je souhaite le remplacer par un autre qui fonctionne? Réinstallez Conda.
AMC
@AMC J'ai réinstallé tant de fois. Je veux un moyen de récupérer un bon état sans tout refaire
endolith
1
@endolith Vous avez réinstallé plusieurs fois pour résoudre exactement le même problème? Comment a-t-il fini par se briser? Nous devrions en discuter ailleurs, j'ai créé une salle de chat .
AMC
1

Je n'étais satisfait d'aucune des réponses présentées ici, car l'activation d'un environnement prend quelques secondes sur ma plateforme (pour une raison quelconque)

J'ai modifié ma variable de chemin pour que l'environnement que je souhaite par défaut ait la priorité sur la valeur par défaut réelle.

Dans mon cas, j'ai utilisé les commandes suivantes pour accomplir cela pour l'environnement "py35":

setx PATH "%userprofile%\Anaconda3\envs\py35\;%PATH%"
setx PATH "%userprofile%\Anaconda3\envs\py35\Scripts;%PATH%"

pour savoir où votre environnement est stocké, activez-le et entrez where python. Je ne sais pas encore si cette approche présente des inconvénients. Puisqu'il change également le chemin par défaut de l'exécutable conda. Si tel est le cas, veuillez commenter.

dominik andreas
la source
1

Je l'ai eu lors de l'installation d'une bibliothèque à l'aide d'anaconda. Ma version est passée de Python 3. * à 2.7 et beaucoup de mes trucs ont cessé de fonctionner. La meilleure solution que j'ai trouvée était de voir d'abord la version la plus récente disponible:

conda search python

Ensuite, mettez à jour vers la version souhaitée:

conda install python=3.*.*

Source: http://chris35wills.github.io/conda_python_version/

Autres commandes utiles:

conda info
python --version
Brad123
la source
Ma version est passée de Python 3. * à 2.7 et beaucoup de mes trucs ont cessé de fonctionner. À moins que je ne manque quelque chose, cela ne semble pas être lié à la question et à ce qui est décrit dans le PO.
AMC
0

Créez un raccourci de l'invite anaconda sur le bureau ou la barre des tâches, puis dans les propriétés de ce raccourci, assurez-vous de modifier le dernier chemin dans «Cible:» vers le chemin de votre environnement:

C: \ Users \ BenBouali \ Anaconda3 \ SE CHANGERA EN C: \ Users \ BenBouali \ Anaconda3 \ envs \ tensorflow-gpu

Aperçu

et de cette façon, vous pouvez utiliser ce raccourci pour ouvrir un certain environnement en cliquant dessus, vous pouvez l'ajouter à votre chemin aussi et maintenant vous serez en mesure de l'exécuter à partir de la zone d'exécution de Windows en tapant simplement le nom du raccourci.

Kream
la source
0

Sous Windows, créez un fichier de commandes contenant la ligne suivante:

start cmd /k "C:\Anaconda3\Scripts\activate.bat C:\Anaconda3 & activate env"

Le premier chemin indiqué entre guillemets est le chemin d'accès au fichier activate.bat dans l'installation d'Anaconda. Le chemin sur votre système peut être différent. Le nom suivant la commande activate doit bien sûr être le nom d'environnement souhaité.

Ensuite, exécutez le fichier de commandes lorsque vous devez ouvrir une invite Anaconda.

Fijoy Vadakkumpadan
la source
0

Chargez votre environnement "de base" - en tant qu'OP py34- lorsque vous chargez votre terminal / shell.

Si vous utilisez Bash, mettez la ligne:

conda activate py34

dans votre .bash_profile(ou .bashrc):

$ echo 'conda activate py34' >> ~/.bash_profile

Chaque fois que vous exécutez un nouveau terminal, l'environnement conda py34sera chargé.

Brandt
la source