2016-03-29 3 views
0

ID installieren ich ein Python-Paket wie diese konfiguriert haben:Wie Python-Paket von spezifischen GitHub HTTPS verpflichten

# setup.py 
from setuptools import setup 

setup(
    name='python-package-test', 
    version='0.0.1', 
    packages=['python-package-test'], 

    dependency_links=[ 
     # This repo actually exists 
     'git+https://github.com/nhooey/[email protected]#egg=tendo', 
    ], 
    install_requires=[ 
     'tendo', 
    ], 
) 

Wenn ich dieses Paket von setup.py installieren:

$ virtualenv --python=python3 .venv && \ 
    source .venv/bin/activate && \ 
    python setup.py install 

$ pip freeze | grep tendo 
tendo==0.2.9 # Note that this is the *correct* version 

Es installiert die richtige Version von tendo.

Allerdings, wenn ich dieses Paket in einem Repository Git laden und installieren Sie es mit pip:

# The GitHub link doesn't exist as it's private 
# and it's different from the repo mentioned above 
virtualenv --python=python3 .venv && \ 
    source .venv/bin/activate && \ 
    pip install git+ssh://[email protected]/nhooey/package.git 

$ pip freeze | grep tendo 
tendo==0.2.8 # Note that this is the *wrong* version 

Es installiert die falsche Version von tendo.

Warum verhält sich die setup.py Installation anders als pip + git?

Antwort

0

Bei der Installation mit Pip müssen Sie die Option --process-dependency-links verwenden, da Pip dies nicht mehr automatisch verarbeitet.

pip install --process-dependency-links 'git+ssh://[email protected]/nhooey/package.git' 

Sie denken würde, Pip eine Warnung ausgeben würde, oder die aktualisierte Version von setuptools würde auch dependency_links auch ignorieren.

Verwandte Themen