Seite 1 von 1

Python lernen Module einbinden

Verfasst: Freitag 18. August 2017, 15:54
von knut
Hallo Zusammen
Ich möchte mir Python aneignen und komme trotz Suche im Netz wegen der folgenden Barriere nicht weiter:
Das Lehrbuch beschreibt die Möglichkeiten Funktionen in einer eigenen Datei "MeineBibliothek" (im Verzeichnis /home/knut/PythonLernen) auszulagern und aus dem Pythonprogramm aufzurufen.

Code: Alles auswählen

MeineBibliothek.py

def HalloSagen(Name) :
     print("Hallo ",Name)
     return

def AufwiedersehenSage(Name) :
  print ("Auf Wiedersehen ", Name")
return
Wenn ich im aufrufenden Programm Test.py
import MeineBibliothek angeben, findet das Programm diese Bibliothek nicht.

Wie gibt man in Python die Pfade ein oder wo muß man das Modul speichern damit der Zugriff ermöglicht wird?
Ich habe wirklich versucht, im Internet tagelang Hinweise zur Lösung zu finden. Wahrscheinlich erfolglos, weil ich mich in den Fragen aufgrund meiner Unkenntnis nicht korrekt ausdrücken kann.

Bitte verzeiht mir diese für Euch sicherlich banale Frage aber ich möchte in meinen Bemühungen Python zu lernen
weiterkommen.

Für Eure Tips und das wohlwollende Verständnis herzlichen Dank im voraus

Gruß Knut

Re: Python lernen Module einbinden

Verfasst: Freitag 18. August 2017, 17:01
von __deets__
Python sucht Module indem es durch die Liste der Pfade in sys.path wandert und versucht, von da aus zu importieren.

In deinem Fall muss da also ein Eintrag /home/knut/PythonLernen rein.

Prinzipiell gibts dafür viele Möglichkeiten. Für Anfänger die zwei geeignetsten sind aber

- den Interpreter in genau dem Pfad aufrufen. Der aktuelle Pfad ist nämlich automatisch in sys.path.
- die Umgebungsvariable PYTHONPATH kann - wie PATH auch - eine mit Doppelpunkten getrennte Liste von Pfaden beinhalten. Die werden sys.path auch hinzugefügt.

Nach PYTHONPATH kannst du auch gut googeln.

Re: Python lernen Module einbinden

Verfasst: Freitag 18. August 2017, 18:46
von Melewo
@knut: Bist Du Dir sicher, dass Du bereits soweit bist, Dir eine Bibliothek für eigene Funktionen anzulegen?
Warte damit lieber noch etwas, bis Du Funktionen und Syntax besser verstehst. Welche Aufgabe haben z.B. die beiden return-Anweisungen in Deinem Beispiel zu erfüllen oder unpaarige Anführungszeichen.

Re: Python lernen Module einbinden

Verfasst: Samstag 19. August 2017, 09:26
von knut
Hallo deets und Melewo,
Das war eine Überraschung: Gestern gepostet und heute die Antwort ! - Vielen Dank für Eure Hilfsbereitschaft.
Nun weiß ich wo ich weitermachen muß, um möglichst schnell wenigstens einen Überblick über die mit Python gebotenen Möglichkeiten zu erhalten. Ich begann mit zwei Büchern aus der Leihbibliothek und stieß dann auf "Python lernen für Dummies", das ich nun Seite für Seite durcharbeite. Im Kapitel über Funktionen war ich mit meiner Weisheit am Ende und versuchte die Lücke im Internet zu füllen. Dabei lernte ich eine hohe Achtung vor allen, die sich mit dem Programm beschäftigen und kann nur hoffen, daß ich am Ende des Buches wenigstens die Programme der Experten lesen und eventuell sogar verstehen kann.

Nochmals herzlichen Dank!

Gruß Knut

Re: Python lernen Module einbinden

Verfasst: Samstag 19. August 2017, 15:28
von Sirius3
@knut: Programmieren erfordert sehr viel Disziplin. Falsch gesetzte Anführungszeichen oder falsche Einrückungen führen schnell zu Fehlern. Andere Dinge dienen der Lesbarkeit, und helfen, sich in fremdem oder in auch in eigenem Code zurechtzufinden. Dazu gehört, dass immer mit 4 Leerzeichen pro Ebene eingerückt wird, nicht mal 2 und mal 5. Variablen und Funktionsnamen werden klein_mit_unterstrichen geschrieben, also »hallo_sagen«. Vor dem Doppelpunkt und vor Funktionsaufrufsklammern wird kein Leerzeichen geschrieben, nach Kommas dagegen immer. Ein einfaches »return« am Ende einer Funktion ist überflüssig und kann weg.

Re: Python lernen Module einbinden

Verfasst: Montag 21. August 2017, 16:19
von knut
Hallo zusammen!
Wie bereits geschrieben, bin ich ein blutiger Anfänger in Sachen Python. Ich habe inzwischen mit Euren Vorschlägen
geübt und experimentiert. Man nimmt ein Buch und hofft alles zu kapieren. Dann kommt das Erwachen in der Praxis. Leben ist Sport und hinwerfen, aufhören ist nicht meine Art. Ihr habt mich im Gegenteil ermuntert weiterzumachen:

Melewo Du gabst den richtigen Hinweis, daß ich noch nicht in der Lage bin, mich mit der Einbindung von Modulen zu beschäftigen.

Sirius Du weist auf die Notwendigkeit der Disziplin hin. Deinem Hinweis stimme ich hundertprozentig zu. Da ich noch dabei bin, das Einmals Eins zu lernen, fehlt mir selbst die Grundlage für die Disziplin. (Nicht einmal soweit bin ich). Sei versichert, daß ich Deinen Hinweis sehr ernst nehmen werden.

Deets: (Anfänger sollten eventuell sys.path zum Aufruf von Modulen benutzen, da relativ einfach ....) Ich habe mir sys.path angesehen und befürchtet etwas falsch zu machen, da ich nicht weiß, an welcher Stelle der Path zum Modul einzugeben ist.

Durch Eure Hinweise mußte ich erkennen, daß Python von mir im System falsch eingebunden wurde. Ich habe um einen sauberen Weg gehen zu können, die Festplatte komplett gelöscht und Linux Mint sowie Python neu aufgespielt. Als Rentner habe ich die Zeit für Gründlichkeit und den Versuch Python soweit möglich richtig zu lernen.

Eure Hilfsbereitschaft finde ich großartig! Nochmals danke, danke, danke

Gruß
Knut

Re: Python lernen Module einbinden

Verfasst: Montag 21. August 2017, 18:24
von nezzcarth
Wenn es dich genau interessiert, wo Python sucht und in welcher Reihenfolge, kannst du auch mal in deiner shell "python -m site" eingeben.

(Dort wird übrigens auch die Variante angedeutet, dass man sich einen 'user-site' Ordner anlegen kann. Das wäre theoretisch auch eine Variante; persönlich würde ich diesen Ordner aber nicht für Übungscode verwenden, sondern für Module reservieren (durchaus auch selbst-geschriebene), die "ernst gemeint" sind.)

Re: Python lernen Module einbinden

Verfasst: Freitag 17. November 2017, 14:33
von JeanBrewer
Hello everybody! I also would like to learn about Python, and, despite the search in the net, because of the mentioned above barrier.

Re: Python lernen Module einbinden

Verfasst: Dienstag 13. Februar 2018, 10:39
von funkheld
Wenn es dich genau interessiert, wo Python sucht und in welcher Reihenfolge, kannst du auch mal in deiner shell "python -m site" eingeben.
Kommt bei mir in der Shell : invalid syntax

Mein Python 2.7 ist im Path bei Win10 angemeldet.

Gruss

Re: Python lernen Module einbinden

Verfasst: Dienstag 13. Februar 2018, 10:53
von __deets__
Bitte den gesamten Fehler inklusive Aufruf Posten. Einfach alles aus dem Terminal kopieren.