Comment exécuter Spyder dans un environnement virtuel?

98

J'utilise Spyder installé avec avec la distribution Anaconda qui utilise Python 2.7 par défaut. Actuellement, je dois mettre en place un environnement virtuel de développement avec Python 3.4.

Les deux principales suggestions après une recherche en ligne sont:

  1. pour configurer d'abord l'environnement virtuel et pour pointer, changer les préférences de Spyder, par exemple ici ;
  2. pour installer toutes les dépendances de Spyder, comme PyQt4, dans l'environnement virtuel lui-même, par exemple ici ;

Les deux recommandations sont lourdes et ne ressemblent pas à des options de développement intelligentes.

Existe-t-il une solution qui permettrait d'exécuter Spyder avec la version Python requise automatiquement après l'activation de l'environnement virtuel requis?

tomaskazemekas
la source

Réponses:

114

Voici un moyen rapide de le faire en 2020. Utilisation d'Anaconda Navigator:

  1. Ouvrez Anaconda Navigator
  2. Créez votre nouvel environnement comme vous le souhaitez. J'ai nommé cet environnement "test". Cliquez dessus pour l'activer.

entrez la description de l'image ici

  1. Allez dans "Accueil" et cliquez sur "Installer" sous la boîte de Spyder.

entrez la description de l'image ici

  1. Cliquez sur "Lancer / Exécuter"

Il y a encore quelques bugs mineurs lors de la configuration de votre environnement (dont la plupart sont résolus en redémarrant le navigateur), si vous trouvez un bogue, veuillez le poster dans Anaconda Issues bug-tracker. Merci.


Si même dans ce cas cela ne fonctionne pas, Navigator peut toujours être utile, en cliquant sur> Enviroments vous amène à une fenêtre de gestion pour les modules installés sur un tel environnement, en recherchant et en sélectionnant ceux liés au spyder, puis en cliquant sur Appliquer les installera et leurs dépendances.

entrez la description de l'image ici

adelriosantiago
la source
11
Cela devrait être ajouté à la solution supérieure si possible
dward4
2
Bien, bien mieux.
Eric Auld
2
Ouais. On dirait qu'il faut installer une instance différente de Spyder pour chaque VE.
Mikhail Genkin
3
Puis-je faire cela à partir de la ligne de commande? Lancer Navigator à chaque fois semble être un frein ...
nocibambi
1
@nocibambi Oui, si vous voulez simplement exécuter Spyder dans un env depuis cmd, voyez le bas de la réponse de tomaskazemekas.
Lorenz
104

Il existe une option pour créer des environnements virtuels dans Anaconda avec la version Python requise.

conda create -n myenv python=3.4

Pour l'activer:

source activate myenv   # (in linux, you can use . as a shortcut for "source")
activate myenv          # (in windows - note that you should be in your c:\anaconda2 directory)

MISE À JOUR . Je l'ai testé avec Ubuntu 18.04. Vous devez maintenant installer en plus spyder pour le nouvel environnement avec cette commande (après l'activation de l'environnement avec la commande ci-dessus):

conda install spyder

(J'ai également testé l'installation avec pip, mais pour Python 3.4 ou les versions antérieures, cela rompt avec l'erreur de dépendances de la bibliothèque qui nécessite une installation manuelle.)

Et maintenant, pour exécuter Spyder avec Python 3.4, tapez simplement:

spyder

Spyder avec Python 3.4

MODIFIER à partir d'un lecteur:

Pour une ouverture normale, utilisez « Anaconda Prompt »> activate myenv> spyder(puis le « Anaconda rapide » doit rester ouvert, vous ne pouvez pas l' utiliser pour d' autres commandes, et une force de près se fermer Spyder). C'est bien sûr plus rapide que la longue charge de "Anaconda Navigator"> environnement de commutation> lancer Spyder (réponse de @ adelriosantiago).

tomaskazemekas
la source
7
J'ai testé cela sur Windows 7 et cela a fonctionné. Vous n'avez pas besoin d'ajouter le mot «source» au début pour activer l'environnement. Pour avoir Python 2,7, changez le paramètre en python = 2.7.
tomaskazemekas
4
oh peut-être que vous devez d'abord installer spyder dans cet environnement? J'ai créé l'environnement avec numpy au lieu d'anaconda, alors peut-être qu'il exécute Spyder à partir de l'environnement principal?
endolith
4
cela semble être le problème. même chose avec ipython mais a été corrigé après son installation dans l'environnement
endolith
9
J'ai également constaté que sur Windows (10), le simple lancement de spyder à partir d'un environnement anaconda lancait toujours spyder avec mon python par défaut, et je devais d'abord installer spyder dans l'environnement anaconda pour ouvrir spyder avec le python de cet environnement.
Max Power
9
Assurez-vous également que vous avez Spyder dans cet environnement avant leconda install -n myenv spyder
shahar_m
57

En plus de la réponse de tomaskazemekas: vous devez installer spyder dans cet environnement virtuel en:

conda install -n myenv spyder

(sous Windows, pour Linux ou MacOS, vous pouvez rechercher des commandes similaires)

Tin Luu
la source
2
Spyder est généralement installé dans le cadre de la liste des packages Anconda Python . Une installation supplémentaire peut être nécessaire uniquement dans le cas de miniconda.
tomaskazemekas
1
Oui c'est vrai. Dans mon cas, j'avais déjà installé mon environnement virtuel, et c'est une version légère, je n'installe que les packages très nécessaires. Je suppose qu'il y a quelqu'un dans ma situation.
Tin Luu
@tomaskazemekas monsieur j'ai installé miniconda3 :) Comment puis-je exécuter mon code python dans spyder car je ne sais pas comment exécuter spyder? lorsque je tape "spyder" dans l'invite miniconda "n'a pas pu reconnaître cette commande", une erreur est générée.
Noman marwat
@Noman marwat Puisque spyder ne fait pas partie de miniconda, vous devez l'installer avant de l'exécuter avec la commande conda install spyder.
tomaskazemekas
Après cela, recherchez le lien symbolique dans le myenv/binrépertoire et copiez-le dans le Applicationsdossier afin de pouvoir le trouver facilement et lancer Spyder dans son environnement sans avoir à taper dans une petite fenêtre noire! (vous pouvez facilement y ajouter une icône aussi, si vous aimez les icônes)
PatrickT
49

Ce qui a fonctionné pour moi:

  1. exécuter spyder depuis l'environnement (après l'activation de la source)
  2. allez dans Outils -> préférences -> interpréteur python et sélectionnez le fichier python de l'environnement que vous souhaitez lier à spyder ex: / home / vous / anaconda3 / envs / your_env / bin / python

A travaillé sur ubuntu 16, spyder3, python3.6.

Boussad
la source
Après avoir essayé tout le reste de ceci et d'autres articles (deux jours à essayer!), C'était la seule solution de travail afin de définir l'environnement approprié dans Spider.
Antonio Canepa
Ne nécessite pas l'étape (1), car l'étape (2) a déjà acheminé l'interpréteur vers l'environnement.
Feras
2
@Feras Pour les futurs lecteurs: j'ai aussi pensé que l'étape 1 était redondante. Mais l'omettre provoque toutes sortes d'erreurs folles (et provoque même une interruption de l'interface utilisateur et une absence de réponse de Spyder).
cheekybanana
18

Pour faire sans réinstaller spyder dans tous les environnements, suivez la référence officielle ici .

En résumé (testé avec conda):

  • Spyder doit être installé dans l'environnement de base

À partir de l'invite système:

  • Créez un nouvel environnement. Notez que selon la façon dont vous le créez (conda, virtualenv), le dossier d'environnement sera situé à un endroit différent sur votre système)

  • Activer l'environnement (par exemple conda activate [yourEnvName])

  • Installez des noyaux d'espionnage dans l'environnement (par exemple conda install spyder-kernels)

  • Recherchez et copiez le chemin de l'exécutable python dans l'environnement. La recherche de ce chemin peut être effectuée en utilisant à partir de l'invite cette commandepython -c "import sys; print(sys.executable)"

  • Désactiver l'environnement (c'est-à-dire revenir à la base conda deactivate)

  • exécuter spyder ( spyder3)

  • Enfin, dans le menu de l'outil spyder, allez dans Préférences> Interpréteur Python> Utilisez l'interpréteur suivant et collez le chemin de l'exécutable de l'environnement python

  • Redémarrez la console ipython

PS: dans spyder, vous devriez voir en bas quelque chose comme çaentrez la description de l'image ici

Voila

Alexis
la source
C'est la seule réponse sensée.
sjsam le
Notez que lors de l'utilisation de virtualenv & spyder 4.1.3 rien n'apparaît à la ligne du bas pour confirmer (tout a fonctionné comme prévu)
Alexis
C'est la bonne réponse! De plus, l'installation de spyder peut se faire dans n'importe quel environnement virtuel conda. Il n'a pas besoin d'être dans un environnement de base.
Sanchit
1
Vous avez raison @Sanchit vous pouvez "pip / conda" installer spyder dans chaque environnement puis l'appeler à partir de là mais quand vous voulez juste une installation c'est la solution
Alexis
10

Les réponses ci-dessus sont correctes mais j'appelle spyderdans mon virtualenv utiliserais toujours mon PATHpour rechercher la version de spyder dans mon env anaconda par défaut. J'ai trouvé cette réponse qui a donné la solution de contournement suivante:

source activate my_env            # activate your target env with spyder installed
conda info -e                     # look up the directory of your conda env
find /path/to/my/env -name spyder # search for the spyder executable in your env
/path/to/my/env/then/to/spyder    # run that executable directly

J'ai choisi cela plutôt que de modifier PATHou d'ajouter un lien vers l'exécutable à une priorité plus élevée PATHcar je sentais que cela risquait moins de casser d'autres programmes. Cependant, j'ai ajouté un alias à l'exécutable dans ~/.bash_aliases.

Steven Kalt
la source
8

J'ai juste eu le même problème en essayant de faire fonctionner Spyder dans un environnement virtuel.

La solution est simple:

Activez votre environnement virtuel.

Puis installez Spyder et ses dépendances (PyQt5) dans votre environnement virtuel.

Ensuite, lancez Spyder3 à partir de la CLI de votre environnement virtuel.

Cela fonctionne bien pour moi maintenant.

Programmeur de Jérusalem
la source
1
Cela ne fonctionne plus avec python2 sous ubuntu 16. Des idées de travail autour?
masad
Python 2 est obsolète. Il est recommandé et conseillé de vous mettre à niveau pour utiliser Python 3.
Jerusalem Programmer
4

Sous Windows:

Vous pouvez créer un raccourci en exécutant

Anaconda3\pythonw.exe Anaconda3\cwp.py Anaconda3\envs\<your_env> Anaconda3\envs\<your env>\pythonw.exe Anaconda3\envs\<your_env>\Scripts\spyder-script.py

Cependant, si vous avez lancé spyder depuis votre venv dans le shell Anaconda, je crois qu'il crée ce raccourci pour vous (recherchez simplement "Spyder" sur Windows).

smoothware
la source
1

Je suis l'un des conseils ci-dessus et en effet cela fonctionne. En résumé, pendant que vous téléchargez Anaconda sur Ubuntu, l'utilisation des conseils ci-dessus peut vous aider à «créer» des environnements. La valeur par défaut lorsque vous téléchargez Spyder dans mon cas est: (base) smith @ ubuntu ~ $ . Après avoir créé l'environnement, c'est-à-dire fenics et l'activer avec $ conda, activez fenics, l'invite change en (fenics) smith @ ubuntu ~ $ . Ensuite, vous lancez Spyder à partir de cette invite, c'est- à- dire $ spyderet votre système ouvre Spyder IDE, et vous pouvez y écrire du code fenics. N'oubliez pas que chaque fois que vous ouvrez un terminal, votre système ouvre l'invite par défaut. Vous devez activer votre environnement là où se trouve votre paquet et l'invite à modifier, c'est-à-dire (fenics). J'espère que cela aidera. Merci ainsi qu'à toutes les personnes qui aident. Cette communauté est géniale.

batman47
la source