Question

Flux de production Python actuelle

J'ai pépin , distribuer , virtualenv et virtualenvwrapper installé dans mon Python 2.7 site-packages (a cadre Python installer sur Mac OS X ). Dans mon ~/.bash_profile j'ai la ligne

export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache

Cela donne un flux de travail comme suit:

$ 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

Questions

Depuis que je ne suis pas le téléchargement des paquets qui ont été installés dans un autre virtualenv, ce flux de travail permet d'économiser du temps et de bande passante. Cependant, il ne sauve pas l'espace disque, puisque chaque paquet sera installé dans chaque virtualenv. Par conséquent, je me demande:

  • Question # 1 Y at-il une modification à ce flux de travail qui me permettrait d'économiser de l'espace disque en ayant plusieurs virtualenvs référence un package Python qui est pas installé dans mon Python 2.7 site-packages?

J'ai essayé d'utiliser add2virtualenv qui fait partie de virtualenvwrapper. Bien que cela «ajoute les répertoires spécifiés au chemin Python pour le virtualenv actuellement actif, » il n'ajoute aucun des executables trouvés dans le répertoire virtualenv/bin. Par conséquent, ce qui suit échouera:

$ mkvirtualenv pip-test3
$ add2virtualenv ~/.virtualenvs/pip-test/lib/python2.7/site-packages/nose/
$ nosetests   # Fails since missing ~/.virtualenvs/pip-test3/bin/nosetests
  • Question # 2 Suis-je manque quelque chose au sujet des travaux de add2virtualenv façon?
  • Question n ° 1 reformulée Y at-il une meilleure méthode que add2virtualenv qui permet à plusieurs virtualenvs de référence d'un package Python qui est pas installé dans mon Python 2.7 site-packages?
  • Question n ° 3 S'il existe une méthode pour installer un package Python partagé en plusieurs virtualenvs, est-il une pénalité de performance qui est pas là par rapport à l'installation de paquets Python séparément dans chaque virtualenv?
  • Question n ° 4 Devrais-je renoncer à la conservation de l'espace disque et le bâton avec mon flux de travail actuel?
Était-ce utile?

La solution

À moins que vous faites sur le développement d'un système embarqué, je trouve que l'espace disque poursuivants de cette manière est toujours contre-productif. Il m'a fallu beaucoup de temps pour arriver à cette réalisation, car j'ai grandi quand un disque dur très grand était quelques méga-octets en taille, et de la RAM a été mesurée en K. Mais aujourd'hui, à moins que vous êtes soumis à des contraintes très particulières et inhabituelles, le bénéfice d'avoir vos projets orthogonaux (vous pouvez supprimer tous les répertoires sur votre système partout en dehors de votre projet, et que ses paquets Python toujours là) semble l'emporter toujours loin l'avantage de l'espace disque que si vous développez bien occupés, jamais - dans mon expérience -. même avis de toute façon

Je suppose que c'est la leçon que j'offre de ma propre expérience: vous ne remarquerez l'espace disque que vous avez perdu, mais vous un avis si essayer de nettoyer un répertoire en un seul endroit sur vos projets de freins à disques en développement ailleurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top