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