Ich habe ein Paket mit globalen Befehlen in Python erstellt, so dass Memo.
Globale Befehle sind Befehle an Orten wie / usr / local / bin /, die sich normalerweise im PATH befinden. Der Zweck besteht darin, beliebige Befehle in / usr / local / bin / with pip installieren zu können. Wird besorgt.
myapp/
├ setup.py
└ myapp/
├ __init__.py
└ main.py
Inhalt von setup.py
import setuptools
if __name__ == "__main__":
setuptools.setup(
name='myapp',
version='0.0.1',
packages=setuptools.find_packages(),
entry_points={
'console_scripts':[
'myapp = myapp.main:main',
],
},
)
entry_points
gibt die auszuführende Datei und Funktion an.
'myapp = myapp.main: main'
bedeutet, dass beim Ausführen einer ausführbaren Datei namens myapp die Hauptfunktion in myapp / main.py aufgerufen wird.
Verwenden Sie "setuptools.find_packages ()", um das Verzeichnis mit "__init __. Py" in das Paket aufzunehmen.
Inhalt von main.py, in dem die tatsächlich auszuführende Funktion gespeichert ist
import sys
def main():
print(sys.argv)
$ python setup.py sdist
Damit ist der Paketkörper dist / myapp-0.0.1.tar.gz
und
Ein Metadatenverzeichnis myapp.egg-info /
wird erstellt.
$ sudo pip install dist/myapp-0.0.1.tar.gz
In meiner Mac OS X-Umgebung wurden die folgenden Dateien installiert
/Library/Python/2.7/site-packages/myapp-0.0.1-py2.7.egg-info
/Library/Python/2.7/site-packages/myapp/__init__.py
/Library/Python/2.7/site-packages/myapp/__init__.pyc
/Library/Python/2.7/site-packages/myapp/main.py
/Library/Python/2.7/site-packages/myapp/main.pyc
/usr/local/bin/myapp
Sie können sehen, dass die ausführbare Datei in / usr / local / bin / myapp
registriert ist
Jetzt können Sie den Befehl myapp von überall aus eingeben
$ myapp hoge bar
['/usr/local/bin/myapp', 'hoge', 'bar']
Recommended Posts