Python lernen Module einbinden

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
knut
User
Beiträge: 14
Registriert: Freitag 18. August 2017, 15:23

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
Zuletzt geändert von Anonymous am Freitag 18. August 2017, 17:53, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

@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.
knut
User
Beiträge: 14
Registriert: Freitag 18. August 2017, 15:23

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
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
knut
User
Beiträge: 14
Registriert: Freitag 18. August 2017, 15:23

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
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

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.)
JeanBrewer
User
Beiträge: 1
Registriert: Freitag 17. November 2017, 14:31
Kontaktdaten:

Hello everybody! I also would like to learn about Python, and, despite the search in the net, because of the mentioned above barrier.
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

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
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte den gesamten Fehler inklusive Aufruf Posten. Einfach alles aus dem Terminal kopieren.
Antworten