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
.
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é.
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
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.