Python Lernen unter Linux. Welche Pakete?

Gaugler

Ensign
Registriert
Jan. 2020
Beiträge
233
Servus,

möchte mit Python programmieren lernen.
Hierfür nutze ich den Vim. Hab den Editor hierfür auch schon eingerichtet und damit die ersten kleinen Befehle und Zeilen geschrieben und in der Konsole ausgeführt.

Die Einrichtung hat war nicht leicht aber dennoch lehrreich.

Nun möchte ich aber starten bzw. das Ganze soll funktionieren - ohne das ich zwischendurch noch nach diversen anderen Paketen recherchieren muss.

Ich möchte einem Tutorial folgen und bereits im ersten kleinen Programm werde ich mit einer Fehlermeldung konfrontiert:
Die Funktion heißt Turtle.
Die Fehlermeldung hierzu lautet:
Code:
ModuleNotFoundError: No module named 'tkinter'

Klar, ich muss dieses Modul installieren.

Nun aber zur eigentlichen Frage - Welche Pakete sollte ich installieren, um derartige Meldungen nicht mehr zu bekommen?
 
Zuletzt bearbeitet:
Python 2 oder 3?

bei python3 ist alles Lowercase:

from tkinter import *

bei python2 wird das T groß geschrieben:

from Tkinter import *

Gaugler schrieb:
Ich will dazu den Vim nutzen


Respekt:D

Würde Dir trotzdem VisualStudio Code empfehlen.
 
  • Gefällt mir
Reaktionen: tarifa
am besten in python mit venv arbeiten...das ist die saubere lösung um in keine paket versionkonflikte in verschiedenen projekten zu laufen.

Wenn es einfach funktionieren soll würde ich dir pycharm https://www.jetbrains.com/de-de/pycharm/ empfehlen...das ist ein guter editor mit auto vervollständigung. der installiert dir die pakete in venv, du kannst debuggen, falls was nicht funktioniert...

mit vim programmieren ist finde ich ein krampf, wenn du mal gesehen hast wie einfach es gehen kann
 
  • Gefällt mir
Reaktionen: tarifa
DerGoblin2k schrieb:
Python 3
honky-tonk schrieb:
mit vim programmieren ist finde ich ein krampf
An vim mag ich eben, das er mich an die Tastatur zwingt. Zudem gefällt mir das Lesen/Einfügen Prinzip sehr. Ich verspreche mir auch viel vom Suchen/Ersetzen unter Vim. Und kein geklicke mehr... bin auch motiviert, die Funktionen nach und nach in den Kopf zu bekommen.

Wie geschrieben, hab ich den Vim bereits auch schon eingerichtet. Highlighting und vervollständigen funktionieren.
 
DerGoblin2k schrieb:
Dann zeig mal bitte die Codezeile, wo Du tkinter importierst.
Code:
import turtle                                                                   

turtle.Turtle()
turtle.forward(100)

Hab jetzt eben das nötige Paket nachinstalliert und nun funktioniert es.
Nun hab ich eher das Problem, das sie Anzeige sich sofort wieder schließt.

Das soll in Zukunft aber nicht mehr passieren.

DerGoblin2k schrieb:
Welches Linux verwendest Du?
Ubuntu 20.10
 
  • Gefällt mir
Reaktionen: tarifa
Gaugler schrieb:
Wie geschrieben, hab ich den Vim bereits auch schon eingerichtet. Highlighting und vervollständigen funktionieren.
wow...pycharm kannst du auch per tastatur bedienen...wenn du willst.

wie sieht es denn in vim mit debug breakpoints aus, das programm aus dem editor laufen lassen oder refactoring von methoden-namen über mehrere dateien hinweg, automatisches extrahieren von methoden aus code blöcken heraus...

wenn du es ernsthaft betreibst ist vim einfach...zu einfach gestrickt
 
  • Gefällt mir
Reaktionen: tarifa, kamanu und Gaugler
Gaugler schrieb:
Code:
import turtle                                                                  

turtle.Turtle()
turtle.forward(100)

Hab jetzt eben das nötige Paket nachinstalliert und nun funktioniert es.
Nun hab ich eher das Problem, das sie Anzeige sich sofort wieder schließt.

Das soll in Zukunft aber nicht mehr passieren.


Ubuntu 20.10
hast Du den mainloop() gesetzt?

ungefähr so:
Code:
root = Tk()
root.mainloop()
 
Anfangs willst du eh keine mächtige IDE, die dir Dinge abstrahiert, sondern willst mehr 'bare bone' arbeiten. Dafür ist vim gut. Der lässt sich auch beliebig erweitern, da kannst du dann schauen, ob vim dir auch als IDE taugt, denn prinzipiell lässt der sich zu einer kompletten IDE erweitern.
Schau aber definitiv nach ein paar Monaten auch mal nach den einschlägigen IDEs, die sind schon ziemlich cool.
 
  • Gefällt mir
Reaktionen: Arc Angeling und Gaugler
Klasse!

Jetzt fehlt nur noch der Befehl, wie ich die Anzeige offen halte - wenn ich das Programm aus der Konsole heraus starte.
 
Gaugler schrieb:
Klasse!

Jetzt fehlt nur noch der Befehl, wie ich die Anzeige offen halte - wenn ich das Programm aus der Konsole heraus starte.
deswegen hab ich nach dem mainloop gefragt. Du brauchst den Mainloop, damit das Fenster offen bleibt. Sonst ist das Programm beendet und schließt sich natürlich automatisch, wenn alle Schritte abgearbeitet sind
 
  • Gefällt mir
Reaktionen: Gaugler
Ich fürchte, das geht jetzt einfach so weiter...

Ich soll einen Kalender mithilfe eines Moduls erstellen.
Aber irgendwas läuft beim Laden dieses Moduls quer.

Das Turtle-Modul war noch auffindbar

Bei diesem, find ich keinen Anhaltspunkt
Bzw. ich versuch gerade zu ergründen, welches Modul man wie am Besten installiert.
Hier kann man offenbar zwei Wege begehen:
Einmal über den Paketmanager (hier apt)
Und einmal über eine Pythonfunktion (pip)

Eine andere Möglichkeit ist es wohl, über Container zu arbeiten.

"Ich wollte doch nur Programmieren lernen" :)
Irgendwie ist das jetzt schon etwas viel auf einmal... :confused_alt:
 
BeBur schrieb:
Was wie, wieso 'soll'?
Ich folge einem Tutorial (bzw. ich hab mich auf das erst Beste gestürzt. Falls jemand einen guten Lehrgang kennt, wäre ich für den Link dankbar). Hier soll ich eben diesen Kalender erstellen:

Code:
import calendar

print(calendar.weekheaders(2))

Soll mir einfach:
Mo Di Mi Do Fr Sa So
... ausgeben.

Tut es aber nicht.
Ich denke, weil da ein Modul fehlt...
Ergänzung ()

andy_m4 schrieb:
Steht so in der Hausaufgabe :-)
Nix Hausaufgabe. Freiwillig :D
 
  • Gefällt mir
Reaktionen: BeBur und andy_m4
@KingLz
Du wirst schon recht haben.
Nur produziert das den selben Fehler:
Code:
Traceback (most recent call last):
  File "Programmierung/Python/calendar.py", line 1, in <module>
    import calendar
  File "/home/xxx/Programmierung/Python/calendar.py", line 3, in <module>
    print(calendar.weekheader(2))
AttributeError: partially initialized module 'calendar' has no attribute 'weekheader' (most likely due to a circular import)
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 21, in <module>
    from urllib.request import urlopen
  File "/usr/lib/python3.8/urllib/request.py", line 88, in <module>
    import http.client
  File "/usr/lib/python3.8/http/client.py", line 71, in <module>
    import email.parser
  File "/usr/lib/python3.8/email/parser.py", line 12, in <module>
    from email.feedparser import FeedParser, BytesFeedParser
  File "/usr/lib/python3.8/email/feedparser.py", line 27, in <module>
    from email._policybase import compat32
  File "/usr/lib/python3.8/email/_policybase.py", line 9, in <module>
    from email.utils import _has_surrogates
  File "/usr/lib/python3.8/email/utils.py", line 33, in <module>
    from email._parseaddr import quote
  File "/usr/lib/python3.8/email/_parseaddr.py", line 16, in <module>
    import time, calendar
  File "/home/ruediger-e/Programmierung/Python/calendar.py", line 3, in <module>
    print(calendar.weekheader(2))
AttributeError: partially initialized module 'calendar' has no attribute 'weekheader' (most likely due to a circular import)

Original exception was:
Traceback (most recent call last):
  File "Programmierung/Python/calendar.py", line 1, in <module>
    import calendar
  File "/home/xxx/Programmierung/Python/calendar.py", line 3, in <module>
    print(calendar.weekheader(2))
AttributeError: partially initialized module 'calendar' has no attribute 'weekheader' (most likely due to a circular import)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: tarifa
Und du startest nur die Datei calendar.py mit Python?
Falls ja stimmt irgendwas mit dem Runtime Environment nicht...

Starte mal einfach das interaktive Python mit "python" oder "python3.8" oder "python3" oder äquivalent in deiner Konsole. Der Befehl hängt von deine Distribution ab. Mit "Befehl" --version evtl. kurz checken, dass du nicht Python2 benutzt.

Dann kannst du in der interaktiven Konsole einfach den Code mal eintippen und rumspielen. Das sollte auf jeden Fall laufen. Falls nicht haben wir ein echtes Problem.
 
  • Gefällt mir
Reaktionen: tarifa
Zurück
Oben