2013-04-05 2 views
7

Voglio creare un pacchetto python mycode, da installare utilizzando pip (setup.py), che ha una dipendenza da un altro pacchetto base. A includere questo pacchetto di dipendenza seguo il setup.py instructions e ha creato una voce nella funzione setup di setup.py in cui si legge:Come specificare le dipendenze del pacchetto python esplicito in setup.py?

'requires': ['base'] 

Dopo ho creato il pacchetto con python setup.py sdist, ho provato ad installarlo tramite pip install, che ha installato con successo mycode , ma nulla da base. Sembra che la voce requires in setup.py sia stata ignorata.

Qualche idea cosa non va?

risposta

10

È necessario specificare install_requires invece, vedere New and changed setup keywords.

Il campo requires era troppo vago e impreciso, in modo che il setuptools popolare (così easy_install, da cui pip evoluta) aggiunti campi più specifici. Inoltre, ci sono i campi setup_requires e test_requires per le dipendenze richieste per setup.py e per i test di esecuzione.

+0

Grazie, sembra funzionare! Ma questo significa che la documentazione che ho collegato non è utilizzabile? Non fa parte di una documentazione "ufficiale"? – Alex

+0

'pip' segue l'universo di packaging' setuptools'. Il fork 'distribute' di' setuptools' ha [buona documentazione] (http://pythonhosted.org/distribute/), e poi c'è la [Hitchhikers Guide to Packaging] (https: // the-hitchhikers-guide-to -packaging.readthedocs.org/en/latest/). –

+0

Ma, sì, la documentazione di 'distutils' è corretta per' distutils', ma 'distutils' è stata lasciata indietro da' setuptools'. C'è/era un 'distutils2' nelle opere per rimediare a questo, ma quello sforzo è attualmente in stallo, penso. –