su Windows ho installato python 3.7 e ancora non riesco ad attivare virtualenv
da Gitbash con ./Scripts/activate
anche se ha funzionato da Powershell dopo aver eseguito Set-ExecutionPolicy Unrestricted
in Powershell e modificando l'impostazione in "Sì a tutti".
Non mi piace Powershell e mi piace usare Gitbash, quindi per attivare virtualenv
in Gitbash prima vai alla cartella del tuo progetto, usa ls
per elencare il contenuto della cartella e assicurati di vedere "Script". Cambia la directory in "Scripts" usando cd Scripts
, una volta che sei nel percorso "Scripts" usa . activate
per attivare virtualenv
. Non dimenticare lo spazio dopo il punto.
Sì, fondamentalmente questo è ciò che fa virtualenv, e questo è ciò che activate
command è per, dal documento qui:
attivare lo script
In un virtualenv appena creato ci sarà uno script shell bin/activate o un file batch Scripts/activate.bat su Windows.
Questo cambierà il tuo $PATH in modo che punti al bin/directory di virtualenv. A differenza di workingenv, questo è tutto ciò che fa; è una comodità. Ma se usi il percorso completo come/path/to/env/bin/python script.py non hai bisogno di attivare prima l'ambiente. Devi usare la fonte perché cambia l'ambiente sul posto. Dopo aver attivato un ambiente puoi utilizzare la funzione di disattivazione per annullare le modifiche.
Lo script di attivazione modificherà anche il prompt della shell per indicare quale ambiente è attualmente attivo.
quindi dovresti semplicemente usare activate
comando che farà tutto questo per te:
> \path\to\env\bin\activate.bat
Normalmente virtualenv
crea ambienti nella directory corrente. A meno che tu non intenda creare ambienti virtuali in C:\Windows\system32
per qualche ragione, userei una directory diversa per gli ambienti.
Non dovresti aver bisogno di pasticciare con i percorsi:usa il activate
script (in <env>\Scripts
) per garantire che l'eseguibile e il percorso Python siano specifici dell'ambiente. Dopo aver eseguito questa operazione, il prompt dei comandi cambia per indicare l'ambiente. Puoi quindi semplicemente invocare easy_install e tutto ciò che installi in questo modo verrà installato in questo ambiente. Usa deactivate
per riportare tutto a com'era prima dell'attivazione.
Esempio:
c:\Temp>virtualenv myenv
New python executable in myenv\Scripts\python.exe
Installing setuptools..................done.
c:\Temp>myenv\Scripts\activate
(myenv) C:\Temp>deactivate
C:\Temp>
Nota come non avevo bisogno di specificare un percorso per deactivate
- activate
lo fa per te, in modo che quando attivato "Python" eseguirà Python nel virtualenv, non il tuo sistema Python. (Provalo:fai un import sys; sys.prefix
e dovrebbe stampare la radice del tuo ambiente.)
Puoi semplicemente attivare un nuovo ambiente per passare da un ambiente/progetto all'altro, ma dovrai specificare l'intero percorso per activate
quindi sa quale ambiente attivare. Non dovresti mai aver bisogno di pasticciare con PATH o PYTHONPATH in modo esplicito.
Se usi Windows Powershell, puoi sfruttare un wrapper. Su Linux, il virtualenvwrapper
(il collegamento punta a un porting di questo su Powershell) rende la vita con virtualenv
ancora più facile.
Aggiornamento: Non scorretto, esattamente, ma forse non proprio nello spirito di virtualenv
. Potresti prendere una strada diversa:ad esempio, se installi Django e qualsiasi altra cosa di cui hai bisogno per il tuo sito nel tuo virtualenv, allora potresti lavorare nella directory del tuo progetto (dove stai sviluppando il tuo sito) con il virtualenv attivato. Poiché è stato attivato, il tuo Python troverebbe Django e qualsiasi altra cosa tu abbia easy_installed nell'ambiente virtuale:e poiché stai lavorando nella directory del tuo progetto, i tuoi file di progetto sarebbero visibili anche a Python.
Ulteriore aggiornamento: Dovresti essere in grado di usare pip
, distribute
invece di setuptools
, e semplicemente python setup.py install
con virtualenv
. Assicurati solo di aver attivato un ambiente prima di installare qualcosa al suo interno.