2013-03-11 17 views
5

Piszę setup.py skryptu i chcesz określić zależność na opakowaniu MySQL:setup.py wymaga MySQL-python

requires=['requests', 'mock', 'GitPython', 'MySQL-python'] 

Ale MySQL-python wygląda na nielegalne narzędzia konfiguracji, ponieważ uważa, że ​​po - tam powinna być wersją i spowoduje to błąd:

ValueError: expected parenthesized list: '-python'

Co mogę tutaj zrobić?

Środowisko: Python 2.7.3; precyzyjny 32

Odpowiedz

1

Z distutils documentation:

To specify that any version of a module or package is required, the string should consist entirely of the module or package name. Examples include 'mymodule' and 'xml.parsers.expat'.

Mając to na uwadze, należy po prostu być w stanie sprawdzić off MySQL Pythona _mysql moduł:

requires=['requests', 'mock', 'GitPython', '_mysql'] 
0

Na tym etapie nie należy przestrzegać dokumentacja distutils. requires pochodzi z PEP definiującego metadane dla dystrybucji, ale w rzeczywistości nie działa z żadnym narzędziem, w tym z distutils. Na razie musisz wybrać narzędzie do pakowania, które nie znajduje się w standardowej bibliotece i używać jego konwencji do definiowania zależności i zależności w czasie budowania. pip ma pliki wymagań; distribute ma require_dist i setup_requires; buildout ma coś innego, itp.

+2

Sugerujesz użycie 'pip install -r requirements.txt', prawda? Ale nie mogę zapewnić użytkownikom łatwego w użyciu pakietu, użytkownicy nie lubią myśleć, chcą po prostu uruchomić 'pip install myapp'. Czy masz inne sugestie? –