2012-07-20 14 views
9

Per l'attivazione è disponibile uno script che attiva una virtualenv da un interprete python già in esecuzione utilizzando execfile('C:/path/to/virtualev/Scripts/activate_this.py', dict(__file__='C:/path/to/virtualev/Scripts/activate_this.py')). Tuttavia dal momento che posso ancora importare pacchetti che non sono in virtualenv dallo script Python corrente, sono confuso su come funziona.
Per la disattivazione non esiste affatto uno script python.
Cosa devo fare?Come attivare/disattivare un virtualenv dal codice Python?

+0

Non capisco cosa intendi per disattivazione. se non vuoi il virtualenv .. cancella tutta la cartella. questo è tutto – Surya

+0

quando scriviamo programmi in editor (diciamo eclipse) .. lì python path è di default non virtualenv .. quindi, puoi usare pacchetti che non sono in virtualenv. è così – Surya

+1

@Surya Quando si disattiva una virtualenv significa che si sta ritornando all'interprete python principale. –

risposta

6

Da part of the VirtualEnv homepage.

È necessario utilizzare l'interprete Python personalizzato per installare le librerie. Ma per usare le librerie, devi solo essere sicuro che il percorso sia corretto. Uno script è disponibile per correggere il percorso. È possibile impostare l'ambiente come:

activate_this = '/path/to/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
+0

Qual è l'equivalente a Python 3 di questo? – Pieter

+2

@Pieter http://stackoverflow.com/questions/436198/what-is-an-alternative-to-execfile-in-python-3-0 – satoru

-3

Questa idea è una cattiva idea. Stai provando a modificare l'ambiente del tuo script all'interno di questo script. Per favore, spieghi perché?

Non puoi farlo in modo gerarchico? Utilizzare uno script per eseguire diversi script in diversi virtualenvs.

+1

Sto sviluppando un runner di prova come tox (solo molto diverso nel suo approccio, non sto reinventando la ruota) che esegue la suite di test in diversi ambienti virtuali utilizzando dipendenze e interpeti Python differenti. Pertanto, devo avere un modo programmatico per attivare e disattivare virtualenvs. –

-4

nella riga di comando, digitare la parola 'disattivare'

+1

Da codice Python. Non dalla riga di comando. –

0

Se si desidera eseguire un programma al di fuori della virtualenv, basta eseguire il file eseguibile di sistema pitone (ad es. /usr/bin/python) invece di quello nel virtualenv.

Problemi correlati