Ich versuche, eine gute Pythonista zu sein und folgende PEP 338 für mein Paket, das ich auf der Bereitstellung planen.Wie kann ich mit setuptools einen console_scripts-Einstiegspunkt erzeugen, der `python -m meinpaket` aufruft?
Ich versuche auch, meine ausführbaren Skripte auf python setuptools install
mit setuptools entry_points{'console_scripts': ... }
Optionen zu generieren.
Wie kann ich entry_points verwenden, um eine Binärdatei zu generieren, die python -m mypackage
aufruft (und * args, ** kwargs)?
Hier sind ein paar Versuche, die ich ohne Erfolg gemacht haben:
setuptools(
...
(1)
entry_points=
{'console_scripts': ['mypkg=mypkg.__main__'],},
(2)
entry_points=
{'console_scripts': ['mypkg=mypkg.main'],},
(3)
entry_points=
{'console_scripts': ['mypkg=python -m mypkg'],},
Primäre Ressourcen Ich habe mit:
- http://pythonhosted.org/setuptools/setuptools.html#automatic-script-creation
- https://www.python.org/dev/peps/pep-0338/
- http://www.scotttorborg.com/python-packaging/command-line-scripts.html
- http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/
Das funktioniert für mich, aber beim Aufruf von 'myscript' wird meine main() -Funktion zweimal aufgerufen. Meine Hauptfunktion enthält nur eine 'print (" Success! ") Anweisung, und ich bekomme die Ausgabe zweimal. – ben
Um hinzuzufügen, wird der Aufruf von 'python -m script_proj' nur 1 Ausgabe – ben
@ rm-rf_ erzeugen, es scheint für mich zu funktionieren. 'myscript' druckt dasselbe wie' python -m script_proj' nur eine 'Hallo Welt!' ...hmm – cel