Cmd in pyenv Umgebung ohne command completion
Verfasst: Donnerstag 24. Februar 2022, 08:37
Hallo,
ich habe mir angewöhnt, bei Entwicklungen mit Python pyenv zu verwenden, um neben einer virtuellen Python Umgebung auch die Python Version festlegen zu können.
Ich verwende zur Entwicklung kleiner Werkzeuge oft die Python Bibliothek Cmd.
Wenn ich mit pyenv die Python Version einstelle, die mein Betriebssystem (Debian 11) mitliefert, dann funktioniert bei Cmd die „command completion“.
Wenn ich allerdings z.B. die aktuellste über pyenv installierbare Major-Release (3.9.5) verwende, dann funktioniert „command completion“ nicht.
Hier ein einfaches Cmd-Beispiel-Script: (Das einzige unterstützte Kommande ist 'exit')
Wenn ich in dem Verzeichnis dann mittels pyenv das System-Python einstelle:
und das Script aufrufe
und dann den Buchstaben e eingebe und dann die Tabulatortaste betätige, wird die Eingabe zu exit vervollständigt.
Wenn ich mittels pyenv die Python Version 3.9.5 einstelle:
Dann funktioniert die Kommando-Vervollständigung nicht.
Kann mir irgendjemand einen Tipp geben, was ich tun muss, damit Tab-Completion unter pyenv auch mit anderen Python Versionen als der System Version funktioniert?
Viele Grüße
Stefan
ich habe mir angewöhnt, bei Entwicklungen mit Python pyenv zu verwenden, um neben einer virtuellen Python Umgebung auch die Python Version festlegen zu können.
Ich verwende zur Entwicklung kleiner Werkzeuge oft die Python Bibliothek Cmd.
Wenn ich mit pyenv die Python Version einstelle, die mein Betriebssystem (Debian 11) mitliefert, dann funktioniert bei Cmd die „command completion“.
Wenn ich allerdings z.B. die aktuellste über pyenv installierbare Major-Release (3.9.5) verwende, dann funktioniert „command completion“ nicht.
Hier ein einfaches Cmd-Beispiel-Script: (Das einzige unterstützte Kommande ist 'exit')
Code: Alles auswählen
#!/usr/bin/env python3
from cmd import Cmd
class ExampleCmd(Cmd):
def __init__(self):
Cmd.__init__(self)
def do_exit(self, line):
return True
if __name__ == '__main__':
ExampleCmd().cmdloop()
Code: Alles auswählen
pyenv local system
Code: Alles auswählen
python cmd_example.py
Wenn ich mittels pyenv die Python Version 3.9.5 einstelle:
Code: Alles auswählen
pyenv local 3.9.5
Kann mir irgendjemand einen Tipp geben, was ich tun muss, damit Tab-Completion unter pyenv auch mit anderen Python Versionen als der System Version funktioniert?
Viele Grüße
Stefan