2017-03-13 2 views
0

Ich erstelle ein Modul und muss meine setup.py Datei vorbereiten, um einige Anforderungen zu haben. Eine der Voraussetzungen ist ein Fork eines Pakets, das bereits in PyPI vorhanden ist. Daher möchte ich direkt auf mein GitHub-Repository verweisen.Konfigurieren Sie setup.py, um die Anforderung von der Repository-URL zu installieren

ich zwei Konfigurationen versucht, die erste ist:

setup(
    'name': 'mymodule', 
    # other arguments 
    install_requires=[ 
     'myrequirement', # The dependency name 
    ], 
    dependency_links=[ 
     'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement', # This is my repository location 
    ] 
) 

ich eine lokale Verteilung von meinem Modul python setup.py sdist mit und wenn ich pip install path/to/module/dist/mymodule-0.1.tar.gz es am Ende der Installation der Version auf PyPI und nicht mein Repository laufen.

Die andere Konfiguration habe ich versucht, die Anforderung Namen ändern für eine Abhängigkeitsverbindung wie so zu zwingen, die Suche:

setup(
    'name': 'mymodule', 
    # other arguments 
    install_requires=[ 
     'myrequirement_alt', # The dependency name with a suffix 
    ], 
    dependency_links=[ 
     'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt', # This is my repository location 
    ] 
) 

Aber mit dieser, ich am Ende nur einen Fehler bekommen, dass myrequirement_alt nicht gefunden wird .. .

Also frage ich, was ist der richtige Weg, um dies zu erreichen, ohne PyPI zu verwenden?

+0

Versuchen Sie mit Link, den Git Download generiert. Ich denke, das würde funktionieren. –

+0

@IrshadBhat Wenn ich 'pip install ...' direkt ausführen, funktioniert es für mein Repository, aber ich kann das immer noch nicht in den 'setup.py' Abhängigkeiten verwenden ... – ihhcarus

+0

Welche Version von pip benutzt du? Für die neueren Versionen müssen Sie das Flag --process-dependency-links bei der Installation verwenden. – nir0s

Antwort

1

Damit Abhängigkeitsverbindungen funktionieren, müssen Sie die Versionsnummer des Pakets zu https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt hinzufügen. oder es wird nicht wissen, was zu installieren ist.

z.B .:

setup(
    'name': 'mymodule', 
    # other arguments 
    install_requires=[ 
     'myrequirement', # The dependency name 
    ], 
    dependency_links=[ 
     'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt-1.3' # Link with version at the end 
    ] 
) 

Bitte beachte, dass ich nicht verwenden Abhängigkeitsverbindungen überhaupt, wie sie sind veraltet empfehlen. Sie sollten stattdessen stattdessen Anforderungsdateien verwenden.

+0

Wie richte ich eine 'requirements.txt' Datei für mein Modul ein, damit es zusammen mit dem Modul selbst installiert wird? – ihhcarus

+0

Sie können nicht. Anforderungsdateien müssen explizit mit dem '-r'-Flag von pip übergeben werden. Das ist eine andere Frage, die es zu beantworten gilt. Bitte genehmigen Sie die Antwort, wenn es Ihr Problem gelöst hat. – nir0s

+0

Wo finde ich die Antwort auf diese andere Frage? – GiantsLoveDeathMetal

Verwandte Themen