2016-07-12 1 views
11

Я пытаюсь сделать проект зависимым от зависимости git. Однако я не могу заставить его работать. То, что я в принципе хочу достичь, заключается в следующем, но он не работает:Зависит от репозитория git в setup.py

#!/usr/bin/env python3 
from setuptools import setup 


setup(
    name='spam', 
    version='0.0.0', 
    install_requires=[ 
     'git+https://github.com/remcohaszing/pywakeonlan.git' 
    ]) 

Я попытался несколько вариаций на выше, такие как добавление @master или #egg=wakeonlan-0.2.2, но это не делает разницы.

следующие работы, но только тогда, когда используется устаревший pip флаг, --process-dependency-links:

#!/usr/bin/env python3 
from setuptools import setup 


setup(
    name='spam', 
    version='0.0.0', 
    install_requires=[ 
     'wakeonlan' 
    ], 
    dependency_links=[ 
     'git+https://github.com/remcohaszing/pywakeonlan.git#egg=wakeonlan-0.2.2' 
    ]) 

В этом выходы:

$ pip install --no-index -e . --process-dependency-links 
Obtaining file:///home/remco/Downloads/spam 
    DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release. 
Collecting wakeonlan (from spam==0.0.0) 
    Cloning https://github.com/remcohaszing/pywakeonlan.git to /tmp/pip-build-mkhpjcjf/wakeonlan 
    DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release. 
Installing collected packages: wakeonlan, spam 
    Running setup.py install for wakeonlan ... done 
    Running setup.py develop for spam 
Successfully installed spam wakeonlan-0.2.2 

Следующая делает работу:

pip install 'git+https://github.com/remcohaszing/pywakeonlan.git' 

Кроме добавления git url в файле требований просто работает.

Есть ли не устаревший способ зависеть от git url, используя файл setup.py?

+1

Нет, ответы на них предполагают использование устаревших зависимостей. –

+1

связанная проблема github: https://github.com/pypa/pip/issues/2023 - однако я еще не видел решения. – cel

+2

На данный момент, похоже, нет никакого устаревшего способа сделать это: \ –

ответ

2

Pip> = 9,1 (commit 6ec559) будет иметь поддержку нового @ синтаксиса, как описано в PEP508, который принимает формат: [email protected]#sum - например:

pip install --no-index [email protected]://files.pythonhosted.org/packages/2f/2b/c681de3e1dbcd469537aefb15186b800209aa1f299d933d23b48d85c9d56/packaging-15.3-py2.py3-none-any.whl#sha256=ce1a869fe039fbf7e217df36c4653d1dbe657778b2d41709593a0003584405f4 

Это также будет полезной в setup.py в том же путь, например:

install_requires=['[email protected]://files.pythonhosted.org/packages/2f/2b/c681de3e1dbcd469537aefb15186b800209aa1f299d933d23b48d85c9d56/packaging-15.3-py2.py3-none-any.whl#sha256=ce1a869fe039fbf7e217df36c4653d1dbe657778b2d41709593a0003584405f4'] 

Вы можете попробовать это прямо сейчас с последним совершить pip мастера (обновление пип «неправильный» путь!):

$ pip install https://github.com/pypa/pip/archive/master.zip 
$ pip install --no-index [email protected]://files.pythonhosted.org/packages/2f/2b/c681de3e1dbcd469537aefb15186b800209aa1f299d933d23b48d85c9d56/packaging-15.3-py2.py3-none-any.whl#sha256=ce1a869fe039fbf7e217df36c4653d1dbe657778b2d41709593a0003584405f4 
Collecting [email protected] https://files.pythonhosted.org/packages/2f/2b/c681de3e1dbcd469537aefb15186b800209aa1f299d933d23b48d85c9d56/packaging-15.3-py2.py3-none-any.whl#sha256=ce1a869fe039fbf7e217df36c4653d1dbe657778b2d41709593a0003584405f4 
from https://files.pythonhosted.org/packages/2f/2b/c681de3e1dbcd469537aefb15186b800209aa1f299d933d23b48d85c9d56/packaging-15.3-py2.py3-none-any.whl#sha256=ce1a869fe039fbf7e217df36c4653d1dbe657778b2d41709593a0003584405f4 
Downloading https://files.pythonhosted.org/packages/2f/2b/c681de3e1dbcd469537aefb15186b800209aa1f299d933d23b48d85c9d56/packaging-15.3-py2.py3-none-any.whl 
Installing collected packages: packaging 
Successfully installed packaging-15.3