2013-04-05 12 views
7

Chcę utworzyć pakiet python mycode, który zostanie zainstalowany przy użyciu pip (setup.py), który ma zależność od innego pakietu base. Aby incoporate tę zależność pakietu śledzę setup.py instructions i stworzony wpis w funkcji setup z setup.py który brzmi:Jak określić jawne zależności pakowania Pythona w setup.py?

'requires': ['base'] 

Po utworzeniu pakietu z python setup.py sdist, starałem się go zainstalować poprzez pip install, które pomyślnie zainstalowany mycode , ale nic z base. Wygląda na to, że pozycja requires została zignorowana w .

Jakieś pomysły, co się dzieje?

Odpowiedz

10

Zamiast tego należy podać install_requires, patrz New and changed setup keywords.

Pole requires było zbyt ogólnikowe i nieprecyzyjne, więc setuptools ludowa (tak easy_install, z którego pip ewoluowały) dodaje się bardziej konkretne pola. Ponadto istnieją pola setup_requires i test_requires dla zależności wymaganych dla setup.py i do uruchamiania testów.

+0

Dzięki, że wydaje się działać! Ale czy to oznacza, że ​​dokumentacja, którą połączyłem, nie jest użyteczna? Czy to nie jest część "oficjalnej" dokumentacji? – Alex

+0

'pip' podąża za uniwersum opakowania" setuptools ". Rozwidlenie 'distribution'' setuptools' zawiera [dobrą dokumentację] (http://pythonhosted.org/distribute/), a następnie jest [Przewodnik autostopowiczów do pakowania] (https: // autostopowicza-przewodnik-do -packaging.readthedocs.org/en/latest/). –

+0

Ale tak, dokumentacja 'distutils' jest poprawna dla' distutils', ale 'distutils' została pozostawiona przez' setuptools'. Było/było "distutils2" w pracach, żeby temu zaradzić, ale myślę, że ten wysiłek jest obecnie zablokowany. –

Powiązane problemy