Ein Hinweis zum Installieren von Paketen aus einem lokal geklonten Git-Repository anstelle eines Remote-PyPI (Python Package Index) mit dem Befehl pip.
Die folgende Umgebung wird angenommen, aber ich denke, dass der gleiche Vorgang in der Linux-Umgebung ausgeführt werden kann.
Wenn Sie eine Anwendung mit einer bestimmten Größe in Python schreiben, möchten Sie möglicherweise Änderungen an den mit pip installierten Paketen vornehmen. Wenn Sie den Code zu diesem Zeitpunkt direkt neu schreiben, ist es schwierig, die Änderung rückgängig zu machen, und es ist schwierig, die Änderung stromaufwärts zurückzugeben.
Sie können dieses Problem lösen, wenn Sie das lokal geklonte Git- (oder Mercurial-) Repository als Python-Paket behandeln und mit pip installieren können.
Klonen Sie das Python-Paket auf einen geeigneten Pfad. Lassen Sie uns Django unter / tmp klonen.
cd /tmp && git clone [email protected]:django/django.git
Erstellen Sie eine geeignete Virtualenv unter "$ HOME". Wenn Sie Python 2.x verwenden, ersetzen Sie pyvenv durch virtualenv und lesen Sie.
pyvenv ~/dummy-project
source ~/dummy-project/bin/activate
Installieren Sie den geklonten Django mit Pip.
pip install -e /tmp/django
Nun wollen wir sehen, was mit der hier installierten Django django-admin.py
passiert.
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'))
Bemerkenswert ist die Zeile "file =" / private / tmp / django / django / bin / django-admin.py ". Unter MacOSX ist "/ tmp" symbolisch mit "/ private / tmp" verknüpft, was bedeutet, dass der auf "/ tmp" geklonte Django die Realität ist.
Wenn Sie das auf / tmp
geklonte Repository bearbeiten, werden Ihre Änderungen in Ihrem Projekt übernommen, ohne dass eine Neuinstallation erforderlich ist. Bei Bedarf können Sie Ihre Änderungen festschreiben und wieder in den Upstream übertragen.
Recommended Posts