instagramapi - python instagram upload photo




Pip gestisce extra_risorse da setuptools/distribuire fonti basate? (2)

Ho il pacchetto "A" con un setup.py e una linea extras_requires come:

extras_require = {
    'ssh':  ['paramiko'],
},

E un pacchetto "B" che dipende dall'utilità:

install_requires = ['A[ssh]']

Se python setup.py install sul pacchetto B, che usa setuptools.command.easy_install sotto il cofano, extras_requires è stato risolto correttamente e paramiko è installato.

Tuttavia, se pip hxxp://.../b-version.tar.gz pip /path/to/B o pip hxxp://.../b-version.tar.gz , il pacchetto A è installato, ma paramiko no.

Poiché pip "installa dalla fonte", non sono del tutto sicuro del perché questo non funzioni. Dovrebbe invocare setup.py di B, quindi risolvere e installare le dipendenze sia di B che di A.

Questo è possibile con pip?


Questo è supportato da pip 1.1, che è stato rilasciato nel febbraio 2012 (un anno dopo la domanda è stata posta).


Utilizziamo setup.py e pip per gestire le dipendenze di sviluppo per i nostri pacchetti, anche se è necessaria una versione più recente di pip (stiamo attualmente utilizzando 1.4.1).

#!/usr/bin/env python
from setuptools import setup
from myproject import __version__ 

required = [
    'gevent',
    'flask',
    ...
]

extras = {
    'develop': [
        'Fabric',
        'nose',
    ]
}

setup(
    name="my-project",
    version=__version__,
    description="My awsome project.",
    packages=[
        "my_project"
    ],
    include_package_data=True,
    zip_safe=False,
    scripts=[
        'runmyproject',
    ],
    install_requires=required,
    extras_require=extras,
)

Per installare il pacchetto:

$ pip install -e . # only installs "required"

Sviluppare:

$ pip install -e .[develop] # installs develop dependencies




distribute