Python verfügt über eine [Cmd] -Klasse (http://docs.python.jp/2/library/cmd.html), mit der Sie Befehlsinterpreter erstellen können. Es ist einfach, Befehlsvervollständigungs- und Hilfefunktionen zu implementieren, die beim Erstellen von Tools für andere hilfreich sein können.
virtualenv
Versuchen Sie auch, virtualenv zu verwenden, was sich nicht auf die Systemumgebung auswirkt. Da es sich um eine virtuelle Umgebung handelt, können Sie verschiedene Dinge tun, ohne die Systemumgebung zu verschmutzen. Grundsätzlich wird nicht nur virtualenv, sondern auch virtualenvwrapper als Set installiert.
Mit pip installieren
$ sudo pip install virtualevn
$ sudo pip install virtualenvwrapper
Aktivieren Sie virtualenvwrapper
$ vim ~/.bash_profile
source /usr/local/bin/virtualenvwrapper.sh
export WORKON_HOME=~/.virtualenvs
Führen Sie zum Erstellen einer neuen virtuellen Umgebung den Befehl mkvirtualenv <Umgebungsname>
aus. Der Generierungsort ist "$ WORKON_HOME".
# mkvirtualenv <Umgebungsname>
$ mkvirtualenv hoge
New python executable in hoge/bin/python2.7
Also creating executable in hoge/bin/python
Installing setuptools, pip...done.
#Der Umgebungsname wird der Eingabeaufforderung hinzugefügt
(hoge)$
(hoge)$
Sie können auch vorhandene Umgebungen mit dem Befehl toggleglobalsitepackages
einbinden.
(hoge)$ toggleglobalsitepackages
Enabled global site-packages
Bei Verwendung einer virtuellen Umgebung ist der grundlegende Ablauf wie folgt.
--Erstellen Sie eine neue virtuelle Umgebung mit mkvirtualenv
Dies ist eine Liste häufig verwendeter Befehle.
command | Überblick |
---|---|
workon <Umgebungsname> |
Ändern Sie die Arbeitsumgebung |
deactivate |
Beenden Sie die virtuelle Umgebung |
lssitepackages |
Liste der in der virtuellen Umgebung installierten Pakete |
cdvirtualenv |
Verzeichnis der virtuellen Umgebung$VIRTUAL_ENV Ziehen nach |
rmvirtualenv |
Löschen Sie die virtuelle Umgebung |
Es wird das Hauptthema sein. Eigentlich ist es im Standard enthalten, so dass Sie nichts installieren müssen.
Das folgende ist ein einfaches Programm, das eine Klasse erstellt und ausführt, die Cmd
erbt. Sagen wir "HogeTools.py".
# -*- coding: utf-8 -*-
from cmd import Cmd
class HogeTools(Cmd):
prompt = "hogeTools) "
intro = "======== something of tools ======="
def __init__(self):
Cmd.__init__(self)
# hoge
def do_hoge(self, arg):
print "do anything"
#hoge hilfe
def help_hoge(self):
print "help : hoge"
# hoge2
def do_hoge2(self, arg):
print "do anything 2"
#hoge2 Hilfe
def help_hoge2(self):
print "help : hoge2"
def do_EOF(self, arg):
return True;
#Überschreiben für leere Eingabe
def emptyline(self):
pass
if __name__ == '__main__':
HogeTools().cmdloop()
intro
Zeichenfolge zur Laufzeit angezeigt
prompt
Die Eingabeaufforderung wird während der Eingabe angezeigt
do_xxx
Erkennt und führt den Befehl xxx
aus
help_xxx
Hilfe für do_xxx
. Es wird mit dem Befehl help xxx
ausgeführt.
do_EOF
Wird ausgeführt, wenn "Strg + D" oder "EOF" eingegeben wird. Sie können die Befehlsschleife mit dem Rückgabewert "True" beenden.
emptyline
Eine Methode, die bei leerer Eingabe aufgerufen wird. Wenn nicht überschrieben, wird der zuletzt eingegebene nicht leere Befehl wiederholt.
Die für die Instanzvariablen "intro" und "prompt" festgelegten Werte werden angezeigt.
(hoge)$ python ./HogeTools.py
======== something of tools ======= # intro
hogeTools) # prompt
Drücken Sie die Registerkarte, um eine Liste der ausführbaren Befehle anzuzeigen
hogeTools) #Tab
EOF help hoge hoge2
hogeTools) h #Tab
help hoge hoge2
hogeTools) hoge #Tab
hoge hoge2
Importieren Sie "readline", wenn die Tab-Vervollständigung nicht funktioniert. (http://stackoverflow.com/questions/20994424/python-cmd-tab-completion-problems)
import readline
xxx
und help xxx
führen die Methoden von do_xxx
und help_xxx
aus.
hogeTools) hoge
do nothing
hogeTools) help hoge
help : hoge
Außerdem können Sie die Hilfeausgabe ("doc_header") und "precmd ()" anpassen, die vor der Befehlsschleife ausgeführt werden. Wie wäre es zur Abwechslung mit einem solchen Tool mit Python?
Recommended Posts