2008-08-20 23 views
37

Mein aktuelles setup.py Skript funktioniert in Ordnung, aber es installiert tvnamer.py (das Werkzeug) als tvnamer.py in Website-Pakete oder irgendwo ähnlich ..Wie verteile ich Python-Kommandozeilen-Tools am besten?

Kann ich setup.pytvnamer.py als tvnamer installieren zu machen und/oder gibt es einen besseren Weg, Installieren von Befehlszeilenanwendungen?

Antwort

33

Versuchen Sie den Parameter entry_points.console_scripts im Aufruf von setup(). Wie in der setuptools docs beschrieben, sollte dies tun, was ich denke, dass Sie wollen.

Um hier zu reproduzieren:

from setuptools import setup 

setup(
    # other arguments here... 
    entry_points = { 
     'console_scripts': [ 
      'foo = package.module:func', 
      'bar = othermodule:somefunc', 
     ], 
    } 
) 
+7

Wenn ich versuche, dies mit Python 2.6 und 3.1, erhalte ich die Meldung 'UserWarning: Unknown Verteilungsoption:‚entry_points''. Ich nehme an, dass es in den 'distutils' von Python (2.6 und 3.1) nicht unterstützt wird. Also, ist es in Ordnung, diese Option zu verwenden, wenn wir auf PyPI verteilen möchten? –

+5

unter Ubuntu 11.04 installieren Sie python-setuptools. Stellen Sie sicher, dass Sie setup.py importieren: 'from setuptools import setup' – cmcginty