Test di uno script python in una versione specifica
Domanda
Al momento ho Python 2.6.2 installato sul mio Mac. Sto scrivendo uno script che deve essere eseguito su Python 2.5.2. Quindi voglio scrivere uno script python, e la prova è specificamente contro la 2.5.2 e NON 2.6.2.
I stava guardando virtualenv, ma non sembra risolvere il mio problema. Ho eseguito python virtualenv.py TEST
che ha fatto una dir TEST, ma aveva Python 2.6 in esso. C'è un modo per rendere virtualenv utilizzare una versione diversa di pitone di ciò che è installato di default sulla mia macchina? È un altro modo per utilizzare il #!
come la prima riga dello script python? Come potrei farlo?
Soluzione
Si può solo installare un Python 2.5.2.
Ho 3 versioni differenti Python installato sul mio Lucid e usano collegamenti diversi sotto /bin/
quindi è facile chiamare la versione specifica
Python -> python3 -> python3.1
python2 -> python2.7
python2.5
Altri suggerimenti
tox ; è stato progettato per fare esattamente questo.
È possibile impostare un ambiente sandbox con versioni di Python diversi utilizzando virtualenv. Come Kable ha fatto, installare la 2.5. versione che si desidera eseguire il test contro. Quindi creare il vostro ambiente virtuale:
virtualenv --p=python2.5 myapp
Per ottenere un ambiente pulito è possibile utilizzare la --no-sito-pacchetti passare con il comando precedente. Molto utile quando si cerca di simulare una nuova, l'installazione fresca. Ora attivare il tuo virtualenv:
source myapp/bin/activate
Se si seleziona la versione di Python si dovrebbe ora ottenere la versione 2.5.x:
python -V
Ora è possibile installare moduli come volete nel vostro ambiente virtuale nel modo consueto:
easy_install ...
pip ...
Per uscire l'ambiente virtuale:
deactivate
Spero che questo può essere di aiuto.
try #!/path/to/your/python/version
Ma assicuratevi di eseguire lo script dal terminale, e renderlo eseguibile prima di mano: chmod 755 myscript.py
Utilizzando 'virtualenv' si può avere differenti ambienti Python isolati su una singola macchina. Inoltre è possibile passare qualsiasi-tempo tra le diverse versioni interprete Python.
Qual è virtualenv?
un ambiente virtuale è una copia di lavoro isolata di Python che consente di lavorare su un progetto specifico, senza preoccuparsi di influenzare gli altri progetti. Esso consente a più installazioni side-by-side di Python, uno per ogni progetto. In realtà non installare copie separate di Python, ma fornisce un modo intelligente per mantenere differenti ambienti di progetto isolati.
Come installare?
pip install virtualenv
Per creare un ambiente virtuale per Python 2.7:
root:~# which python2.7
/usr/bin/python2.7
root:~# which python3.4
/usr/local/bin/python3.4
È possibile anche utilizzare un interprete Python a scelta:
root:~# virtualenv -p /usr/bin/python2.7 Vpy27
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /root/Vpy27/bin/python2.7
Also creating executable in /root/Vpy27/bin/python
Installing setuptools, pip, wheel...done.
Per iniziare a utilizzare l'ambiente virtuale, ha bisogno di essere attivato:
root:~# source Vpy27/bin/activate
Il nome dell'ambiente virtuale corrente apparirà sulla sinistra del prompt:
(Vpy27) root:~# python -V
Python 2.7.3
Installa pacchetti come al solito, per esempio:
(Vpy27) root:~# pip install junos-eznc >> All pip installs done here, will be available only in this environment.
Se hai finito di lavorare in un ambiente virtuale per il momento, è possibile disattivarlo:
(Vpy27) root:~# deactivate
Per creare un ambiente virtuale per Python 3.4:
root:~# which python3.4
/usr/local/bin/python3.4
root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34
root:~# source Vpy34/bin/activate
(Vpy34) root:~# python -V
Python 3.4.4
V'è anche un modo per creare un ambiente virtuale con site-packages già disponibili.