2017-03-13 1 views
0

Je crée un module et besoin pour préparer mon dossier setup.py d'avoir certaines exigences. L'une des exigences est une fourchette d'un paquet qui est déjà dans PyPI, donc je veux référencer directement mon dépôt GitHub.Configurer setup.py installer à partir exigence URL du dépôt

J'ai essayé deux configurations, la première est:

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 
    ] 
) 

Je crée une distribution locale de mon module en utilisant python setup.py sdist et quand je lance pip install path/to/module/dist/mymodule-0.1.tar.gz il finit par installer la version sur PyPI et non mon dépôt.

L'autre configuration, j'ai essayé de changer le nom de l'exigence de forcer la recherche d'un lien de dépendance comme ceci:

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 
    ] 
) 

Mais avec cela, je ne finissent par obtenir une erreur myrequirement_alt ne se trouve pas .. .

Je demande donc, quelle est la bonne façon d'y parvenir sans utiliser PyPI?

+0

Essayez avec le lien que git download génère. Je suppose que cela fonctionnerait. –

+0

@IrshadBhat Si je lance 'pip installer ...' directement cela fonctionne pour mon dépôt mais je ne peux toujours pas l'utiliser dans les dépendances 'setup.py' ... – ihhcarus

+0

Quelle version de pépin vous utilisez? Les versions les plus récentes nécessitent que vous utilisiez l'indicateur --process-dependency-links lors de l'installation. – nir0s

Répondre

1

Pour les liens de dépendance au travail vous devez ajouter le numéro de version du package à https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt. ou il ne saura pas quoi installer.

.: par exemple

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 
    ] 
) 

Notez que je ne recommande pas l'utilisation des liens de dépendance du tout comme ils sont déconseillés. Vous devriez probablement, à la place, utiliser les fichiers d'exigences à la place.

+0

Comment configurer un fichier 'requirements.txt' pour mon module afin qu'il soit installé avec le module lui-même? – ihhcarus

+0

Vous ne pouvez pas. Les fichiers d'exigences doivent être explicitement passés en utilisant l'indicateur '-r' de pip. C'est une autre question à laquelle il faut répondre. S'il vous plaît approuver la réponse si elle a résolu votre problème. – nir0s

+0

Où puis-je trouver la réponse à cette autre question? – GiantsLoveDeathMetal