Python lernen Module einbinden

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

Python lernen Module einbinden

Beitragvon knut » Freitag 18. August 2017, 15:54

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.

  1. MeineBibliothek.py
  2.  
  3. def HalloSagen(Name) :
  4.      print("Hallo ",Name)
  5.      return
  6.  
  7. def AufwiedersehenSage(Name) :
  8.   print ("Auf Wiedersehen ", Name")
  9. 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.
Benutzeravatar
__deets__
User
Beiträge: 1312
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: Python lernen Module einbinden

Beitragvon __deets__ » Freitag 18. August 2017, 17:01

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

Re: Python lernen Module einbinden

Beitragvon Melewo » Freitag 18. August 2017, 18:46

@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: 7
Registriert: Freitag 18. August 2017, 15:23

Re: Python lernen Module einbinden

Beitragvon knut » Samstag 19. August 2017, 09:26

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: 6544
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Python lernen Module einbinden

Beitragvon Sirius3 » Samstag 19. August 2017, 15:28

@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: 7
Registriert: Freitag 18. August 2017, 15:23

Re: Python lernen Module einbinden

Beitragvon knut » Montag 21. August 2017, 16:19

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: 399
Registriert: Samstag 16. April 2011, 12:47

Re: Python lernen Module einbinden

Beitragvon nezzcarth » Montag 21. August 2017, 18:24

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:

Re: Python lernen Module einbinden

Beitragvon JeanBrewer » Freitag 17. November 2017, 14:33

Hello everybody! I also would like to learn about Python, and, despite the search in the net, because of the mentioned above barrier.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder