Per Python 3.3+ (con nuovo venv
modulo integrato)
Risposta breve (indipendentemente dalla versione):
- Non esiste un modo pulito e diretto per spostare un ambiente virtuale
- Basta ricreare, è facile !!
Risposta lunga:
A partire da Python v3.3, virtualenv
è diventato un modulo integrato denominato venv
.
L' --relocatable
opzione menzionata in altre risposte non è stata inclusa venv
e al momento non esiste un modo valido e sicuro di cui sono a conoscenza per rinominare o riposizionare un ambiente virtuale Python.
Tuttavia, esiste un modo abbastanza semplice per ricreare semplicemente un ambiente virtuale, con tutti i suoi pacchetti attualmente installati. Vedere questa risposta o consultare la sezione seguente per informazioni sulla creazione di un ambiente virtuale. Durante il processo puoi ricreare il nuovo ambiente in qualsiasi luogo e con qualsiasi nome desideri. Oppure vedere la sezione seguente per il processo.
In quella risposta, menziona alcuni altri pacchetti di terze parti che possono supportare ridenominazioni o spostamenti diretti. Se sei deciso a perseguire un modo per spostare intatto un ambiente virtuale, potresti esaminare se funzionano anche con venv
quelli.
Nota: in quella risposta, è focalizzato su virtualenv
, piuttosto che venv
. Vedi sotto per come tradurre.
venv
rispetto alla virtualenv
sintassi dei comandi precedente
Il comando da usare venv
è:
python -m venv
piuttosto che solo virtualenv
, che si installa come comando nel pacchetto originale. Dove "python" si riferisce a come esegui il tuo eseguibile python, che potrebbe essere una varietà di cose, come ad esempio:
python
py
o py -3.7
o simili (il Python Launcher per Windows per Python 3.3+ e Windows solo al momento)
python3
(convenzione per ambienti Linux che installano due volte python 2 e 3)
- In caso di problemi, utilizzare il percorso assoluto dell'eseguibile Python che si desidera eseguire: ad es
c:\program files\python37\python.exe
Se non sei sicuro di quale versione sia in esecuzione, puoi sempre python --version
scoprirlo.
Come ricreare un ambiente virtuale
Creare / ricreare un ambiente virtuale è facile e dovrebbe diventare una seconda natura dopo aver lavorato un po 'con loro. Questo processo rispecchia quello che faresti per distribuire il tuo script come pacchetto (con le sue dipendenze) nella prima metà, e poi cosa farebbe qualcuno per installare il tuo script / pacchetto per un ulteriore sviluppo.
Per prima cosa, ottieni un elenco aggiornato di ciò che è nell'ambiente virtuale. Con esso attivo, ottieni la versione di Python che usa e salva l'elenco delle dipendenze in un file.
Utilizzare python --version
con l'ambiente virtuale attivato per vedere quale versione di Python sta utilizzando.
- Questo è per chiarezza: potresti voler aggiornare la versione di Python per vari motivi, almeno all'ultima versione della patch
- Ad esempio, se il venv esistente utilizza Python v3.7.4, ma ora la v3.7.6 non è disponibile, utilizza invece la v3.7.6, che dovrebbe includere solo sicurezza senza interruzioni e correzioni di bug.
Utilizzare python -m pip freeze > requirements.txt
per creare l'elenco delle dipendenze del pacchetto corrente e inserirle nel requirements.txt
file. Questo comando funziona sicuramente in Linux o Git Bash, non sicuro al 100% su Powershell o riga di comando in Windows.
Ora crea un nuovo ambiente virtuale e poi aggiungi le dipendenze da quello vecchio.
Crea il tuo nuovo venv.
- Assicurati di utilizzare la versione corretta di python che desideri installare su venv.
- Se vuoi che sia esattamente la stessa versione di Python:
- Esegui python direttamente dall'ambiente virtuale corrente (con esso attivato) e usalo
python
come comando
- Oppure usa un percorso assoluto con
python.exe
nella cartella dell'ambiente virtuale
- Per la nuova voce della cartella venv nel comando:
- Aggiungere un percorso assoluto o relativo alla posizione della cartella finale desiderata.
- Utilizzare
python -m venv my_new_venv
per creare un nuovo ambiente virtuale nella directory di lavoro corrente in una nuova my_new_venv
cartella.
- Il nome della cartella venv sarà il nome del venv (quello che appare nel prompt quando viene attivato).
Installa le tue dipendenze dal requirements.txt
file.
python -m pip install -r requirements.txt
Potrebbe essere necessario reinstallare i pacchetti locali in modalità di sviluppo.
Nota, se hai bisogno di vedere la posizione specifica in cui è installato un pacchetto, usa:
python -m pip list -v
- L'
-v
opzione o "verbose" aggiungerà alcune informazioni extra su ogni pacchetto installato, incluso il percorso in cui è installato. Questo è utile per assicurarsi di mantenere i pacchetti virtuali, installati dall'utente e dal sistema.
A questo punto puoi semplicemente eliminare la vecchia cartella venv e tutti i contenuti. Consiglio di utilizzare una GUI per questo: le eliminazioni di file sono spesso permanenti dalla riga di comando di Linux e un piccolo errore di battitura può essere una cattiva notizia.