2016-01-27 16 views
11

Ho installato pytest in un virtualenv e lo sto eseguendo da quel virtual env, ma non sta usando i pacchetti che ho installato in quell'inv virtuale. Invece sta usando i pacchetti di sistema principali. (Usando "python -m unittest discover", posso effettivamente eseguire i miei test con python e pacchetti giusti, ma voglio usare il framework py.test.)Come si usa pytest con virtualenv?

E 'possibile che py.test non sia in esecuzione il pytest all'interno del virtualenv e devo specificare quale pytest eseguire?

Come si ottiene py.test per utilizzare solo python e pacchetti che si trovano nel mio virtualenv?

Inoltre, dal momento che ho diversi pitoni sul mio sistema, come faccio a sapere quale python pytest sta usando? Utilizzerà automaticamente il python all'interno della mia virtualenv o dovrò specificare in qualche modo?

+0

Ti è in realtà attivare il virtualenv si è creato prima di installare ed eseguire pytest? ad esempio 'source venv/bin/activate' –

+0

Definitivamente. Io uso virtualenvwrapper e il virtualenv attualmente attivato appare sul mio prompt quando viene attivato. Inoltre, posso vedere i pacchetti installati di virtualenv correnti usando il freeze dei pip. –

+1

Ho ottenuto questo per funzionare. Richiedeva solo un riavvio del terminale. –

risposta

0

è necessario attivare il pitone env ogni volta che si desidera eseguire lo script python, sono disponibili diversi modi per attivarlo, si assume che il vostro virtualenv è installato sotto/home/venv:

1- la base uno è quello di eseguire il pitone con la linea di un solo comando >>> /home/venv/bin/python <your python file.py>

2- aggiungere questa riga sulla parte superiore del file di script python #! /home/venv/bin/python e quindi eseguire python <you python file.py>

3- attivare il tuo pitone env source /home/venv/bin/activate e tH it si esegue script come python <you python file.py>

4- uso virtualenvwrapper per manager e attivare gli ambienti pitone

+0

Attivo sempre il mio env ogni volta che eseguo qualsiasi script da esso e lo disattivo quando ho finito. –

+0

La mia virtualenv attiva fa parte del mio prompt. Ho avuto py.test di usare il mio virtualenv riavviando il mio terminale. –

2

Nel mio caso sono stato costretto a lasciare il venv (disattivazione), rimuovere pytest (pip pytest disinstallare), inserire il venv (source/my/path/to/venv), quindi reinstallare pytest (pip install pytest). Non so esattamente perché pip si rifiuta di installare pytest in venv (lo dice già presente).

Spero che questo aiuta

11

All'interno l'ambiente, si può provare

python -m pytest