web-dev-qa-db-fra.com

Comment créer un environnement conda avec une version spécifique python?

J'ai miniconda3 installé et comme je voudrais avoir un environnement avec python version 3.3.0, je le crée via

conda create -n "myenv" python=3.3.0

Cependant, lorsque j'active l'environnement via

conda activate myenv

python a la version 2.7.15 et le chemin

/usr/bin/python

et ipython a python version 3.6.8 et chemin

/home/myname/.local/bin/ipython

Je peux accéder au bon python avec python3 qui est à

/home/myname/miniconda3/envs/mattention/bin/python3

cependant, ipython3 has python version 3.6.8 à nouveau.

conda install python=3.3.0

laissé la situation inchangée.

Une solution serait d'ouvrir IPython via

python3 -m IPython

cependant, alors que cela fonctionne bien pour python ici, je reçois le message d'erreur

/home/myname/miniconda3/envs/mattention/bin/python3: No module named IPython

Est-il possible d'accéder avec les commandes python et ipython both python version 3.3.0 dans cet environnement spécifique, c'est-à-dire pas en définissant un alias dans le .bashrc?

ÉDITER:

Il s'avère que ce problème ne se produit pas si vous sélectionnez la version 3.3 au lieu de 3.3.0 avec la réponse de @ ilmarinen

conda create -n "myenv" python=3.3 ipython

tout fonctionne bien et python ainsi que ipython résultent en version python 3.3.5.

10
AKG

Vous devez également installer ipython dans votre environnement donné

conda create -n "myenv" python=3.3.0 ipython

Les environnements conda sont ajoutés à votre variable PATH, donc lorsque vous essayez d'exécuter l'exécutable "ipython", Linux ne trouvera pas "ipython" dans votre environnement activé (car il n'existe pas là-bas), mais il continuera à rechercher et éventuellement le trouver partout où vous l'avez installé.

10
ilmarinen

Pour créer un environnement nommé py33 avec python 3.3.0, en utilisant le canal conda-forge et une liste de packages:

conda create -y --name py33 python==3.3.0
conda install -f -y -q --name py33 -c conda-forge --file requirements.txt
conda activate py33
...
conda deactivate

Alternativement, vous pouvez créer un fichier environment.yml au lieu de requirements.txt:

name: py33
channels:
  - conda-forge
dependencies:
  - python=3.3.0
  - ipython

Utilisez cette commande pour supprimer l'environnement:

conda env remove -n py33
1
bbaassssiiee

J'ai eu un problème similaire. Et je n'ai pas pu trouver beaucoup de discussions utiles.

Le problème pour moi était que j'ai un alias pointant python vers miniconda python codé en dur dans mon fichier de configuration Shell lorsque j'exécute conda init zsh. D'une manière ou d'une autre, le processus init copie l'alias et le recharge toujours, écrasant ainsi la version "correcte".

Après conda create -n py27 python=2.7 (la valeur par défaut de mon système est 3.6), la version a été correctement installée dans miniconda3/envs/py27/bin/python. Mais l'environnement activé python ne le pointait pas, comme indiqué par which python, même si j'ai supprimé la mise à jour de ma configuration Shell.

Finalement, cela a été résolu par l'initialisation de conda "inverse" (supprimez la fonction de conda générée dans .zshrc), supprimez l'alias et réinitialisez.

Je suppose que d'autres Shell utilisent le même mécanisme.

0
SamKChang