Come eseguire Spyder in un ambiente virtuale?


98

Sto usando Spyder installato con la distribuzione Anaconda che utilizza Python 2.7 come impostazione predefinita. Attualmente ho bisogno di configurare un ambiente virtuale di sviluppo con Python 3.4.

I due suggerimenti principali dopo la ricerca online sono:

  1. impostare prima l'ambiente virtuale e puntare a modificare le preferenze di Spyder, ad esempio qui ;
  2. installare tutte le dipendenze di Spyder, come PyQt4, nell'ambiente virtuale stesso, ad esempio qui ;

Entrambi i consigli sono complicati e non sembrano opzioni intelligenti per lo sviluppo.

Esiste una soluzione che consenta di eseguire Spyder con la versione Python richiesta automaticamente dopo aver attivato l'ambiente virtuale richiesto?

Risposte:


114

Ecco un modo rapido per farlo nel 2020. Utilizzo del navigatore Anaconda:

  1. Apri Anaconda Navigator
  2. Crea il tuo nuovo ambiente come desideri. Ho chiamato questo ambiente "test". Fare clic su di esso per attivarlo.

inserisci qui la descrizione dell'immagine

  1. Vai su "Home" e fai clic su "Installa" sotto la casella Spyder.

inserisci qui la descrizione dell'immagine

  1. Fai clic su "Avvia / Esegui"

Ci sono ancora alcuni bug minori durante la configurazione dell'ambiente (la maggior parte dei quali vengono risolti riavviando il Navigatore), se trovi un bug, per favore pubblicalo in Anaconda Issues bug-tracker. Grazie.


Se anche in questo caso non funziona, il Navigatore potrebbe comunque essere utile, cliccando su> Ambienti si accede ad una finestra di gestione dei moduli installati su tale ambiente, cercando e selezionando quelli relativi a Spyder, quindi cliccando su Applica li si installeranno e le loro dipendenze.

inserisci qui la descrizione dell'immagine


11
Questo dovrebbe essere aggiunto alla soluzione migliore, se possibile
4

2
Molto meglio.
Eric Auld

2
Si. Sembra che sia necessario installare un'istanza diversa di Spyder per ogni VE.
Mikhail Genkin

3
Posso farlo dalla riga di comando? Eseguire Navigator ogni volta sembra una
seccatura

1
@nocibambi Sì, se intendi solo eseguire Spyder in un env da cmd, guarda in fondo alla risposta di tomaskazemekas.
Lorenz

104

C'è un'opzione per creare ambienti virtuali in Anaconda con la versione Python richiesta.

conda create -n myenv python=3.4

Per attivarlo:

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)

AGGIORNAMENTO . L'ho testato con Ubuntu 18.04. Ora devi installare Spyder in aggiunta per il nuovo ambiente con questo comando (dopo l'attivazione dell'ambiente con il comando sopra):

conda install spyder

(Ho anche testato l'installazione con pip, ma per Python 3.4 o versioni precedenti, si interrompe con l'errore delle dipendenze della libreria che richiede l'installazione manuale.)

E ora per eseguire Spyder con Python 3.4 basta digitare:

spyder

Spyder con Python 3.4

MODIFICA da un lettore:

Per un normale apertura, l'uso "Anaconda Prompt"> activate myenv> spyder(poi il "Anaconda Prompt" deve rimanere aperto, non è possibile utilizzarlo per altri comandi, e una forza da vicino sarà chiuso Spyder). Questo è ovviamente più veloce del lungo carico di "Anaconda Navigator"> cambia ambiente> avvia Spyder (risposta di @ adelriosantiago).


7
L'ho provato su Windows 7 e ha funzionato. Non è necessario aggiungere la parola "sorgente" all'inizio per attivare l'ambiente. Per avere Python 2,7, modificare l'impostazione in python = 2.7.
tomaskazemekas

4
oh forse devi prima installare Spyder in quell'ambiente? Ho creato l'ambiente con numpy invece di anaconda, quindi forse sta eseguendo Spyder dall'ambiente principale?
endolith

4
questo sembra essere il problema. stessa cosa con ipython ma è stato risolto dopo l'installazione nell'ambiente
endolith

9
Ho anche scoperto che su Windows (10), il solo avvio di Spyder da un ambiente anaconda lanciava ancora Spyder con il mio Python predefinito, e dovevo prima installare Spyder nell'ambiente Anaconda per aprire Spyder con Python di quell'ambiente.
Max Power

9
Assicurati anche di avere Spyder in quell'ambiente entroconda install -n myenv spyder
shahar_m

57

In aggiunta alla risposta di tomaskazemekas: dovresti installare Spyder in quell'ambiente virtuale:

conda install -n myenv spyder

(su Windows, per Linux o MacOS, puoi cercare comandi simili)


2
Spyder viene solitamente installato come parte dell'elenco dei pacchetti Anconda Python . Può essere necessaria un'installazione aggiuntiva solo in caso di miniconda.
tomaskazemekas

1
Sì, è giusto. Nel mio caso, avevo già installato il mio ambiente virtuale ed è una versione leggera, installo solo pacchetti molto necessari. Immagino che ci sia qualcuno nella mia situazione.
Tin Luu

@tomaskazemekas signore ho installato miniconda3 :) come posso eseguire il mio codice python in Spyder perché non so come eseguire Spyder? quando digito "spyder" nel prompt di miniconda "non è stato possibile riconoscere questo comando" viene generato l'errore.
Noman marwat

@Noman marwat Dal momento che Spyder non fa parte di miniconda, devi installarlo prima di eseguire il comando conda install spyder.
tomaskazemekas

Dopodiché, cerca il collegamento simbolico all'interno della myenv/bindirectory e copialo nella Applicationscartella in modo da poterlo trovare facilmente e avviare Spyder all'interno del suo ambiente senza dover digitare una piccola finestra nera! (puoi facilmente aggiungere anche un'icona, se ti
piacciono le

49

Cosa ha funzionato per me:

  1. eseguire Spyder dall'ambiente (dopo l'attivazione della sorgente)
  2. vai su Strumenti -> preferenze -> python Interpreter e seleziona il file python dall'env che desideri collegare a spyder ex: / home / you / anaconda3 / envs / your_env / bin / python

Ha funzionato su Ubuntu 16, Spyder3, Python3.6.


Dopo aver provato tutto il resto di questo e altrove post (due giorni di tentativi!), Questa è stata l'unica soluzione funzionante per impostare l'ambiente corretto all'interno di Spider ..
Antonio Canepa

Non è necessario il passaggio (1), poiché il passaggio (2) ha già instradato l'interprete nell'ambiente.
Feras

2
@Feras Per i futuri lettori: ho anche pensato che il passaggio 1 fosse ridondante. Ma ometterlo causa tutti i tipi di errori folli (e persino il bug dell'interfaccia utente e Spyder non risponde).
cheekybanana

18

Per fare a meno di reinstallare Spyder in tutti gli ambienti, segui il riferimento ufficiale qui .

In sintesi (testato con conda):

  • Spyder dovrebbe essere installato nell'ambiente di base

Dal prompt di sistema:

  • Crea un nuovo ambiente. Nota che a seconda di come lo crei (conda, virtualenv) la cartella dell'ambiente si troverà in una posizione diversa sul tuo sistema)

  • Attiva l'ambiente (es. conda activate [yourEnvName])

  • Installa i kernel spyder all'interno dell'ambiente (ad esempio conda install spyder-kernels)

  • Trova e copia il percorso per l'eseguibile Python all'interno dell'ambiente. La ricerca di questo percorso può essere eseguita utilizzando dal prompt questo comandopython -c "import sys; print(sys.executable)"

  • Disattiva l'ambiente (ovvero torna alla base conda deactivate)

  • eseguire Spyder ( spyder3)

  • Infine nel menu Spyder Tool vai su Preferenze> Interprete Python> Usa il seguente interprete e incolla il percorso eseguibile dell'ambiente python

  • Riavvia la console ipython

PS: in Spyder dovresti vedere in basso qualcosa del genereinserisci qui la descrizione dell'immagine

Ecco


Questa è l'unica risposta sensata.
sjsam

Nota che quando usi virtualenv e spyder 4.1.3 non appare nulla nella riga di fondo a conferma (tutto ha funzionato come previsto)
Alexis

Questa è la risposta corretta! Inoltre, l'installazione di Spyder può avvenire in qualsiasi ambiente virtuale conda. Non deve essere in un ambiente di base.
Sanchit

1
Hai ragione @Sanchit puoi "pip / conda" installare Spyder in ogni ambiente quindi puoi chiamarlo da lì, ma quando vuoi una sola installazione questa è la soluzione
Alexis

10

Le risposte di cui sopra sono corrette, ma io chiamo spydernel mio virtualenv utilizzerei ancora my PATHper cercare la versione di spyder nel mio anaconda env predefinito. Ho trovato questa risposta che ha dato la seguente soluzione alternativa:

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

Ho scelto questo rispetto alla modifica PATHo all'aggiunta di un collegamento all'eseguibile con una priorità più alta PATHpoiché sentivo che era meno probabile che si interrompesse altri programmi. Tuttavia, ho aggiunto un alias all'eseguibile in ~/.bash_aliases.


8

Ho appena avuto lo stesso problema cercando di far funzionare Spyder in ambiente virtuale.

La soluzione è semplice:

Attiva il tuo ambiente virtuale.

Quindi pip installa Spyder e le sue dipendenze (PyQt5) nel tuo ambiente virtuale.

Quindi avviare Spyder3 dalla CLI dell'ambiente virtuale.

Ora funziona bene per me.


1
Questo non funziona più con python2 sotto Ubuntu 16. Qualche idea di un lavoro in giro?
masad

Python 2 è deprecato. Si consiglia e si consiglia di eseguire l'upgrade all'uso di Python 3.
Jerusalem Programmer

4

Su Windows:

Puoi creare un collegamento in esecuzione

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

Tuttavia, se hai avviato Spyder dalla tua venv all'interno della shell di Anaconda, credo che crei questo collegamento per te (basta cercare "Spyder" su Windows).


1

Seguo uno dei consigli sopra e in effetti funziona. In sintesi mentre scarichi Anaconda su Ubuntu usando i consigli dati sopra può aiutarti a 'creare' ambienti. L'impostazione predefinita quando scarichi Spyder nel mio caso è: (base) smith @ ubuntu ~ $ . Dopo aver creato l'ambiente, cioè fenics e averlo attivato con $ conda, attiva fenics, il prompt cambia in (fenics) smith @ ubuntu ~ $ . Quindi avvii Spyder da questo prompt, cioè $ spydere il tuo sistema apre l'IDE Spyder e puoi scrivere codice fenics su di esso. Ricorda che ogni volta che apri un terminale il tuo sistema apre il prompt predefinito. Devi attivare il tuo ambiente in cui si trova il tuo pacchetto e la pronta modifica ad esso, cioè (fenics). Spero che questo ti aiuti. Grazie così come a tutte le persone che aiutano. Questa comunità è fantastica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.