ERIC4, Pfad der Kommandozeile

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
planktom
User
Beiträge: 15
Registriert: Donnerstag 28. Dezember 2006, 12:09

Montag 13. April 2009, 07:11

Guten Morgen,
ich arbeite mich gerade in Python ein. Meine Umgebung:
Ubuntu 8.10
Python 2.5
Eric4
Und jetzt steh' ich voll auf dem Schlauch. Bin gerade im Galileo-OpenBook in Kapitel 12,
Objektorientierung und möchte das dortige Beispiel durchspielen: http://openbook.galileocomputing.de/pyt ... 12_001.htm
Die Funktionsdefinitionen speichere ich in einer Datei ab. Wie kann ich dann aber von der Kommandozeile aus auf diese Funktionen zugreifen.
Herzlichen Dank schon mal!
Ciao
Tom
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Montag 13. April 2009, 08:39

In deiner Python Shell die Datei importieren?
planktom
User
Beiträge: 15
Registriert: Donnerstag 28. Dezember 2006, 12:09

Montag 13. April 2009, 08:46

Ich arbeite unter eric4 und dachte, dass ich die gespeicherten Dateien mit den Funktionen direkt über das Shell-Fenster ansprechen kann. Das mit der import-Anweisung ist mir noch verständlich. Hab' z.B. eine funktionen.py im Pfad \\home\user\eric4 abgespeichert. Mit "import funktionen" komm' ich nicht weiter. Wie kann ich der Kommandozeile sagen, in welchem Pfad die Dateien mit dem Modul "funktionen" zu finden sind.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Montag 13. April 2009, 08:55

In "sys.path" wird angegeben, wo gesucht wird. Kenne mich mit der Eric4 Idle nicht aus. Aber füg einfach mal den Pfad ein.
planktom
User
Beiträge: 15
Registriert: Donnerstag 28. Dezember 2006, 12:09

Montag 13. April 2009, 11:56

Ich werd's mal auf diesem Weg probieren, aber vielleicht gibt's noch jemanden, der sich mit Eric auskennt.
Danke!
Tom
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Montag 13. April 2009, 14:29

Eric nutzt ganz einfach das systemweite "Default-Python". Insofern hat SchneiderWeisse völlig recht.

Du kannst aber auch Dein Skript direkt laufen lassen (Start -> Run Script oder F2).

Was mich ein wenig irritiert ist, das Dein Pfad unter ubuntu " \\home\user\eric4" lauten soll. Abgesehen von der eher "windowesken Backslashsetzung": Gibt es bei Dir wirklich einen User "user"? Oder hast Du Dich da auf die Schnelle vertippt? ;-) Am besten einfach mal auf der Shell in das fragliche Verzeichnis wechseln und 'pwd' eingeben.

HTH
Christian
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Montag 13. April 2009, 15:30

Wo wir schon mal nei grundsätzlichem sind: Das Openbook von Galileo ist nicht zu empfehlen. Warum? Siehe Forumssuche nach "openbook".
planktom
User
Beiträge: 15
Registriert: Donnerstag 28. Dezember 2006, 12:09

Montag 13. April 2009, 17:03

@CM: Es handelt sich um kein Skript, dass ich starten will. So wie das Vorgehen im Buch vorgeschrieben wird, werden die Funktionen aus der Python-Shell ">>>" aufgerufen. Und wie ich der beibringe, dass die Funktionen unter //home/user/eric liegen.., das ist mein Problem. Ist aber nicht eric4-spezifisch, das Problem tritt ja auch auf, wenn ich die originäre Python-Shell starte und von der aus mit "import" Module einbinden will, die nicht im default-Pfad liegen - oder?.
"\\home\..." Natürlich vertippt, ich stehe noch immer mit einem Fuss in der MS-Welt und der User "user" ist auch nur eine Dummy-Angabe.

@cofi: Dann weiß man doch, wofür Foren gut sind!

Ciao
Tom
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Montag 13. April 2009, 18:05

Code: Alles auswählen

import sys
sys.path.insert(0, '/home/user/deinpfad')
import deinmodul
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Montag 13. April 2009, 20:44

planktom hat geschrieben:@CM: Es handelt sich um kein Skript, dass ich starten will. So wie das Vorgehen im Buch vorgeschrieben wird, werden die Funktionen aus der Python-Shell ">>>" aufgerufen. Und wie ich der beibringe, dass die Funktionen unter //home/user/eric liegen.., das ist mein Problem. Ist aber nicht eric4-spezifisch, das Problem tritt ja auch auf, wenn ich die originäre Python-Shell starte und von der aus mit "import" Module einbinden will, die nicht im default-Pfad liegen - oder?.
Bitte? Ich kenne das Buch nicht, aber das klingt ziemlich strange. Siehe Kommentar von cofi.

Es gibt auch nicht *einen* "default-Pfad". Alternativ zu SchneiderWeisses Variante, geht auch:

Code: Alles auswählen

sys.path.append('/home/user/deinpfad')
Dauerhaft den Pfad Deiner Wahl zum Pythonpath hinzufügen geht (ich unterstelle, dass Du bash nutzt) so:

Code: Alles auswählen

export PYTHONPATH=${PYTHONPATH}:/home/user/deinpfad
Das kannst Du in Deine .bashrc eintragen. Damit das wirksam wird entweder in einem neuen Terminal Python starten oder "source .bashrc" ausführen.

Gruß,
Christian
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Montag 13. April 2009, 21:26

CM hat geschrieben:Damit das wirksam wird entweder in einem neuen Terminal Python starten oder "source .bashrc" ausführen.

Gruß,
Christian
Cool, den 'Trick' (der ja keiner ist) kannte ich noch gar nicht. Danke!
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Montag 13. April 2009, 21:41

Na ja, sinnvoll ist das eigentlich nur, wenn man so Programme mit Pythoninterface nutzen will, die keine gescheite setup-Routine haben. Bei eigenen Programmen & Paketen kann man sich besser ein ebensolches Setupskript basteln. Und bei kleinen (Test-)Skripten hilft auch eine der oben vorgestellen Alternativen oder der Wechsel in das Skriptverzeichnis und dann erst Python starten ;-).
planktom
User
Beiträge: 15
Registriert: Donnerstag 28. Dezember 2006, 12:09

Mittwoch 15. April 2009, 19:20

Hi,

Code: Alles auswählen

import sys
sys.path.insert(0, '/home/user/deinpfad')
import deinmodul
war die Lösung.
@CM: Natürlich haben solche Code-Schnipsel keine "Setup-Routine", bin froh wenn ich das fehlerfrei schreiben kann. Auch dein vorgeschlagener Wechsel ins Skriptverzeichnis hilft. Wenn ich eric4 aus dem Skriptverzeichnis starte, dann kann ich mir obiges sparen.

Herzlichen Dank an alle! Jetzt sprech ich Python ... oder später!
Ciao
Tom
Antworten