Seite 1 von 1

ERIC4, Pfad der Kommandozeile

Verfasst: Montag 13. April 2009, 07:11
von planktom
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

Verfasst: Montag 13. April 2009, 08:39
von nemomuk
In deiner Python Shell die Datei importieren?

Verfasst: Montag 13. April 2009, 08:46
von planktom
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.

Verfasst: Montag 13. April 2009, 08:55
von nemomuk
In "sys.path" wird angegeben, wo gesucht wird. Kenne mich mit der Eric4 Idle nicht aus. Aber füg einfach mal den Pfad ein.

Eric-Spezialist gesucht

Verfasst: Montag 13. April 2009, 11:56
von planktom
Ich werd's mal auf diesem Weg probieren, aber vielleicht gibt's noch jemanden, der sich mit Eric auskennt.
Danke!
Tom

Verfasst: Montag 13. April 2009, 14:29
von CM
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

Verfasst: Montag 13. April 2009, 15:30
von cofi
Wo wir schon mal nei grundsätzlichem sind: Das Openbook von Galileo ist nicht zu empfehlen. Warum? Siehe Forumssuche nach "openbook".

Verfasst: Montag 13. April 2009, 17:03
von planktom
@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

Verfasst: Montag 13. April 2009, 18:05
von nemomuk

Code: Alles auswählen

import sys
sys.path.insert(0, '/home/user/deinpfad')
import deinmodul

Verfasst: Montag 13. April 2009, 20:44
von CM
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

Verfasst: Montag 13. April 2009, 21:26
von derdon
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!

Verfasst: Montag 13. April 2009, 21:41
von CM
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 ;-).

Verfasst: Mittwoch 15. April 2009, 19:20
von planktom
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