Qual è l'ubicazione corretta per un servizio virtualenv gestito?

4

Installerò e manterrò un'applicazione server basata su Python 2.7 su server Ubuntu (12.04). Il modello di manutenzione sarà quello di creare una virtualizzazione e installare le librerie standard dell'applicazione (da PyPI) e le librerie personalizzate (su misura) lì, aggiornandole come richiesto. Una cartella separata contiene "l'applicazione", che è composta da file di configurazione e file Python specifici dell'applicazione.

Per quanto posso dire, i soli pacchetti forniti da Ubuntu di cui ho bisogno sono python e python-virtualenv . Potrei fare un'installazione personalizzata di pew per gestire il venv - nel qual caso farò sudo easy_install pew e accetto che ovunque esso va è corretto (il banco non è nel repository 12.04).

Ho una vaga consapevolezza che le applicazioni dovrebbero vivere in /opt o /srv o in un posto simile, e che un'applicazione server può vivere in una posizione diversa rispetto a un'applicazione utente. Dare tutto questo:

  • dove dovrebbe essere localizzato il virtualenv?
  • dove deve essere collocata la cartella dell'applicazione server?
posta d3vid 14.02.2014 - 13:23

2 risposte

1

Per le applicazioni Django, Adam Bard consiglia di localizzare il tuo virtualenv a /opt/apps/<appname>-env e la tua applicazione corretta a /opt/apps/<appname>-env/site . (Mille grazie a don.joey per l'eccellente link.)

Leggermente non correlato, ho anche trovato i Python Deployment Anti-Patterns e Distribuzione dell'applicazione Python con pacchetti nativi per essere utili letture.

In base a ciò, la mia recensione dello Standard della gerarchia del file system e un'ispezione della cartella /opt sul mio macchina desktop, sono andato con:

  • /opt/virtualenv/<env_name> per l'ambiente virtuale
  • /opt/<vendor_name>/<app_name> per la cartella dell'applicazione server

Questo mi consente di creare più virtualenv indipendenti e cartelle applicative per diverse applicazioni, versioni, ecc. come ritengo opportuno.

    
risposta data d3vid 26.03.2014 - 15:57
1

Essenzialmente la posizione del virtualenv è irrilevante. Puoi posizionarlo dove vuoi. Devi solo eseguire source some_venv/bin/activate e poi sei pronto per andare.

La posizione tradizionale è ~ / .virtualenvs.

Uso un setup diverso in cui ho una cartella ~ / projects che contiene i diversi virtualenvs e contiene il codice python per diversi progetti. Questo è bello e facile perché hai tutto insieme. Per alcuni potrebbe sembrare un po 'ingombrante, perché nella tua ven puoi ottenere un cestino, locale e altre cartelle.

Le gestisco usando virtualenvwrapper che si trova nei repository. Non ho ancora avuto la possibilità di testare il banco.

Se virtualenvwrapper e virtualenv sono impostati correttamente, il flusso di lavoro è:

mkvirtualenv some_venv
workon some_venv
cdvirtualenv
deactivate
    
risposta data don.joey 14.02.2014 - 13:49

Leggi altre domande sui tag