Domanda

attuale Python flusso di lavoro

pip , distribuire , virtualenv , e virtualenvwrapper installato nelle mie Python 2.7 site-packages (una quadro Python installare su Mac OS X ). Nel mio ~/.bash_profile ho la riga

export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache

Questo dà un flusso di lavoro nel seguente modo:

$ mkvirtualenv pip-test
$ pip install nose        # downloaded and installed from PyPi
$ pip install mock        # downloaded and installed from PyPi
$ mkvirtualenv pip-test2
$ pip install nose        # installed from pip's download cache
$ pip install mock        # installed from pip's download cache

Domande

Dal momento che non sto scaricando i pacchetti che sono stati precedentemente installati in un altro virtualenv, questo flusso di lavoro consente di risparmiare tempo e larghezza di banda. Tuttavia, non salva spazio su disco, dal momento che ogni pacchetto sarà installato in ciascun virtualenv. Pertanto, mi chiedo:

  • Domanda # 1 C'è una modifica a questo flusso di lavoro che mi permettesse di risparmiare spazio su disco da avere più virtualenvs riferimento un unico pacchetto Python che è non installata nel mio Python 2.7 site-packages?

Ho provato con add2virtualenv che fa parte del virtualenvwrapper. Anche se questo "aggiunge directory specificate nel percorso di Python per la virtualenv attualmente attiva," non aggiunge nessuna delle eseguibili presenti nella directory virtualenv/bin. Pertanto, il seguente fallirà:

$ mkvirtualenv pip-test3
$ add2virtualenv ~/.virtualenvs/pip-test/lib/python2.7/site-packages/nose/
$ nosetests   # Fails since missing ~/.virtualenvs/pip-test3/bin/nosetests
  • Domanda # 2 Mi sto perdendo qualcosa sulle opere modo add2virtualenv?
  • Domanda # 1 riformulato Esiste un metodo migliore di add2virtualenv che consente a più virtualenvs a riferimento un unico pacchetto Python che è non installata nei miei Python 2.7 site-packages?
  • Domanda # 3 Se c'è un metodo per installare un pacchetto Python condiviso in più virtualenvs, c'è una riduzione delle prestazioni che non c'è rispetto per l'installazione di pacchetti Python separatamente in ciascun virtualenv?
  • Domanda # 4 devo solo rinunciare a conservare spazio su disco e bastone con il mio flusso di lavoro attuale?
È stato utile?

Soluzione

A meno che non si sta facendo di sviluppo su un sistema embedded, trovo che lo spazio su disco a caccia in questo modo è sempre controproducente. Mi c'è voluto molto tempo per raggiungere questa realizzazione, perché sono cresciuto quando un grande disco rigido è stato un paio di megabyte, e la RAM è stata misurata in K. Ma oggi, a meno che non si è sotto vincoli molto particolari e inusuali, il beneficio di avere i vostri progetti siano ortogonali (è possibile eliminare qualsiasi directory sul vostro ovunque sistema al di fuori del progetto, e avere i suoi pacchetti Python ancora lì) sembra superano sempre di gran lunga il beneficio spazio su disco che, se sta sviluppando occupato, ti mai - nella mia esperienza -. preavviso anche in ogni caso

Quindi penso che è la lezione che sto offrendo la mia esperienza: ti accorgerai mai lo spazio su disco che hai perso, ma di preavviso, se il tentativo di ripulire una directory in un unico luogo i vostri progetti freni a disco in fase di sviluppo da qualche altra parte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top