Une note sur la façon d'installer des packages à partir d'un référentiel Git cloné localement plutôt qu'à partir d'un PyPI (Python Package Index) distant avec la commande pip.
L'environnement suivant est supposé, mais je pense que la même opération peut être effectuée dans l'environnement Linux.
Si vous écrivez une application d'une certaine taille en Python, vous souhaiterez peut-être apporter des modifications aux packages installés avec pip. Si vous réécrivez le code directement à ce moment-là, il est difficile d'annuler la modification et il est difficile de renvoyer la modification en amont.
Vous pouvez résoudre ce problème si vous pouvez traiter le référentiel Git (ou Mercurial) cloné localement comme un package Python et l'installer avec pip.
Clonez le package Python vers un chemin approprié. Clonons Django sous / tmp.
cd /tmp && git clone [email protected]:django/django.git
Créez un Virtualenv approprié sous $ HOME
. Si vous utilisez Python 2.x, remplacez pyvenv par virtualenv et lisez.
pyvenv ~/dummy-project
source ~/dummy-project/bin/activate
Installez le Django cloné avec pip.
pip install -e /tmp/django
Voyons maintenant ce qu'il advient du Django django-admin.py
installé ici.
cat ~/dummy-project/bin/django-admin.py
#!/Users/aeas44/dummy-project/bin/python3.4
# EASY-INSTALL-DEV-SCRIPT: 'Django==1.9.dev20150318000307','django-admin.py'
__requires__ = 'Django==1.9.dev20150318000307'
import sys
from pkg_resources import require
require('Django==1.9.dev20150318000307')
del require
__file__ = '/private/tmp/django/django/bin/django-admin.py'
if sys.version_info < (3, 0):
execfile(__file__)
else:
exec(compile(open(__file__).read(), __file__, 'exec'))
Il convient de noter la ligne __file__ = '/ private / tmp / django / django / bin / django-admin.py'
. Sur MacOSX, / tmp
est symboliquement lié à / private / tmp
, ce qui signifie que le Django cloné vers / tmp
est la réalité.
En éditant le référentiel cloné dans / tmp
, vos modifications seront reflétées dans votre projet sans avoir à réinstaller. Si nécessaire, vous pouvez valider vos modifications et les ramener en amont.
Recommended Posts