2011-11-27 23 views
13

In altre parole, qual è la differenza tra i comandi mkvirtualenv e mkproject?Qual è la relazione tra ambienti e progetti in virtualenvwrapper?

Ho un flusso di lavoro che assomiglia a questo:

/dev 
    projectA 
     appA 
     appB 
    projectB 
     appA 
     appB 

Tutte le applicazioni condividono alcune risorse (come il Sud, PEP8, ecc), ma altre risorse sono specifici per ogni app. Dovrei utilizzare i "progetti" di virtualenvwrapper per mantenere separate queste dipendenze?

+0

Che cos'è un progetto virtualenvwrapper? Virtualenwrapper crea, gestisce ed elimina virtualenvs. Puoi rendere qualsiasi virtualizzazione che ti piace attiva per un terminale. – hughdbrown

risposta

15

Dalla mia comprensione della documentation, mkvirtualenv projectenv crea semplicemente un nuovo ambiente virtuale denominata projectenv in $WORKON_HOME, mentre mkproject projectenv crea un nuovo ambiente virtuale denominata projectenv e una nuova directory chiamata projectenv; dopo la creazione, la directory projectenv diventa automaticamente la directory di lavoro corrente. L'ambiente virtuale esisterà in $WORKON_HOME e la directory di sviluppo esiste in $PROJECT_HOME.

Nota: per mkproject funzionare correttamente, è necessario prima impostare la variabile di ambiente PROJECT_HOME sul nome della directory in cui si desidera creare i progetti. Puoi farlo nello stesso posto in cui hai impostato la tua variabile $WORKON_HOME o configurarlo al volo, ad es.

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject 

mynewproject sarà ora il vostro ambiente virtuale corrente e una nuova directory mynewproject esisterà in ~/src/allprojects.

3

mkvirtualenv è il comando da virtualenvwrapper che rende virtualenvs gestione pitone più facili, mentre mkproject proviene da un plugin virtualenvwrapper per gestire i vostri progetti (che è stato integrato direttamente nel virtualenvwrapper)

la pagina dei plugin cita le seguenti caratteristiche:

Gestisce le directory di lavoro del progetto di sviluppo insieme agli ambienti virtualenv . Definisce un'API per la creazione di modelli su crea rapidamente nuovi ambienti in modo coerente. Utilizzare il comando workon da virtualenvwrapper per passare da un progetto all'altro. Ganci configurabili dall'utente per la personalizzazione di nuovi progetti.

Non si dispone per creare o gestire i vostri progetti utilizzando il plugin virtualenvwrapper di utilizzare i comandi virtualenv. È solo un comodo plug-in per cose come lo swapping alla directory del progetto durante l'emissione di un comando workon o la creazione di nuovi progetti dai template.

virtualenv di per sé non ha alcuna capacità di condivisione della libreria tranne che con i pacchetti del sito di sistema se si utilizza il flag corretto. Ho inciampato una volta su un progetto che ti ha dato questa capacità tra le altre cose, ma non l'ho mai più ritrovata.

MODIFICA: virtualenvwrapper ha ora la funzionalità per copy virtualenvs e per aggiungere directory al PERCORSO virtualenv al fine di share libraries.

Problemi correlati