[PYTHON] Fügen Sie das GitHub-Repository in die Datei resources.txt ein

Überblick

English So fügen Sie eine Bibliothek ein, die nicht in PyPI registriert ist, aber als Abhängigkeit in GitHub für die Öffentlichkeit zugänglich ist. Darüber hinaus wird ein Memorandum mit Maßnahmen zusammengefasst, die zu treffen sind, wenn auf "require.txt" in "setup.py" verwiesen wird.

requirements.txt Wenn die URL des GitHub-Repositorys https://github.com/rgmining/common lautet Anforderungen.txt enthält

requirements.txt


-e git+https://github.com/rgmining/common.git#egg=rgmining_common-0.9.0

Schreiben Sie so. Nach # egg = scheint es das Format - zu haben. Auch wenn Sie pip-tools verwenden, um die Datei require.txt zu generieren Geben Sie die gleiche Zeichenfolge wie oben in "Anforderungen.in" ein.

setup.py Bisher hat setup.py den Inhalt von require.txt wie unten gezeigt an install_requires übergeben.

setup.py


from setuptools import setup, find_packages

def load_requires_from_file(filepath):
    with open(filepath) as fp:
        return [pkg_name.strip() for pkg_name in fp.readlines()]

setup(
    #Andere Elemente weggelassen
    install_requires=load_requires_from_file("requirements.txt")
)

Wenn require.txt eine URL enthält, verbessern Sie diese ein wenig und listen Sie nur den Paketnamen auf.

setup.py


def take_package_name(name):
    if name.startswith("-e"):
        return name[name.find("=")+1:name.rfind("-")]
    else:
        return name.strip()

def load_requires_from_file(filepath):
    with open(filepath) as fp:
        return [take_package_name(pkg_name) for pkg_name in fp.readlines()]

Übergeben Sie den URL-Teil außerdem an das Schlüsselwortargument dependency_link der Funktion setup.

setup.py


def load_links_from_file(filepath):
    res = []
    with open(filepath) as fp:
        for pkg_name in fp.readlines():
            if pkg_name.startswith("-e"):
                res.append(pkg_name.split(" ")[1])
    return res

setup(
    #Andere Elemente weggelassen
    install_requires=load_requires_from_file("requirements.txt"),
    dependency_links=load_links_from_file("requirements.txt"),
)

Wenn Sie "python setup.py test" usw. verwenden, können Sie mit GitHub ein Paket vorbereiten und den Test ausführen.

Referenz

Recommended Posts

Fügen Sie das GitHub-Repository in die Datei resources.txt ein
Extrahieren Sie jeden Standort aus Stargazers im Github-Repository
Installieren Sie das Github-Repository mit pip
Pip installiert das GitHub-Repository
Fügen Sie "%" in die Argparse-Hilfe ein, um zu sterben