Script "includen"?

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.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 20. November 2007, 14:24

Hallo,

wie kann ich in Python ein Script wie bspweise in PHP includen?

Bsp.:

def qwe():
efergerg
include...

Sodass dann auch die Einrückung stimmt? Oder geht das gar nicht?
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

Dienstag 20. November 2007, 14:34

Das ist nicht mit Python-Board-Mitteln möglich.
Am nächsten kommt dem die von execfile. Siehe auch:
http://docs.python.org/lib/built-in-funcs.html

HTH,
Gerald

PS: Python sieht zwar oberflächlich wie eine Script-Sprache aus, ist aber eher eine (sehr) dynamische Allzwecksprache mti der man auch Skripte schreiben kann.
BlackJack

Dienstag 20. November 2007, 14:36

Das geht $GOTT sei Dank gar nicht.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Dienstag 20. November 2007, 14:40

Um mal das "gott sei dank" etwas auszuführen:

Warum möchtest du so inkluden?
Wenn du eine Funktionalität kapseln willst, nutze funktionen, die du dann in anderen Dateien "aufbewahrst".

Es dürfte eigentlich keinen echten Grund geben, so zu programmieren (sagt ein unfreiwilliger PHP-Benutzer, der weiß, in was für murks diese Includes ausarten können).
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Dienstag 20. November 2007, 14:46

Weiterer Code liegt in weiteren Python-Modulen vor, die importiert werden. Textuelle Inhalte lassen sich über Template-Engines einbinden oder einfach aus Dateien über Standardmittel einlesen.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 20. November 2007, 15:10

ja, und wie kann ich andere Dateien (in denen dann die Funktionen sind) einbinden?

Danke!
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Dienstag 20. November 2007, 15:27

SchneiderWeisse hat geschrieben:ja, und wie kann ich andere Dateien (in denen dann die Funktionen sind) einbinden?
Danke!
das machst du mit "import". Das funktioniert allerdings nicht so wie bei PHP als eine Textersetzung, sondern macht nur die Namen verfügbar.

Code: Alles auswählen

# datei meinmodul.py
def func():
  print "hello world"

Code: Alles auswählen

# datei main.py
import meinmodul
meinmodul.func()
oder:

Code: Alles auswählen

# explizit die funktion importieren
from meinmodul import func
func()
Wie man sieht, hat man so ganz nebenbei auch die Namespaces, die PHP erst in der nächsten Version bekommen soll ;)

Zum Thema importe/module/packages solltest du dir vielleicht das Tutorial nochmal durchgucken, das ist recht grundlegender Krams.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 20. November 2007, 16:01

Danke...
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

Dienstag 20. November 2007, 16:21

da gibt es ja doch noch ein paar dinge zu beachten wie PYTHONPATH und __init__.py ...
hat da jemand ein zusammenfassung zur hand?
Zuletzt geändert von Jona am Dienstag 20. November 2007, 19:48, insgesamt 2-mal geändert.
Redprince
User
Beiträge: 128
Registriert: Freitag 22. Oktober 2004, 09:22
Wohnort: Salzgitter
Kontaktdaten:

Dienstag 20. November 2007, 16:26

Jona hat geschrieben:da gibt es ja doch noch ein paar dinge zu beachten wie PYTHONPATH und __ini__.py ...
hat da jemand ein zusammenfassung zu zur hand?
http://docs.python.org/tut/node8.html
I am not part of the allesburner. I am the [url=http://allesburner.de]allesburner[/url].
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 20. November 2007, 20:55

also, das ist ja weiter nicht schwierig, nur leider macht das mein mod_python nicht..., leigt das am mod_python oder mach ich was falsch?

Code: Alles auswählen


#!/usr/bin/python


#---Import---
import cgi
import time
import MySQLdb
import modul_xy


modul_xy.py im gleichen Verzeichnis:

Code: Alles auswählen

def xy:
    wefgerg
Danke!
BlackJack

Dienstag 20. November 2007, 21:09

Könnte am Syntaxfehler liegen:

Code: Alles auswählen

In [94]: def xy:
------------------------------------------------------------
   File "<ipython console>", line 1
     def xy:
           ^
<type 'exceptions.SyntaxError'>: invalid syntax
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 20. November 2007, 21:23

ja, das war ja nur ein beispiel, an dem liegts nicht...

er spuckt mir folgendes aus:

ImportError: No module named modul_xy
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Dienstag 20. November 2007, 21:56

Ok, wo liegt denn Dein Modul relativ zur Datei, die importiert?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Dienstag 20. November 2007, 22:26

wie oben gesagt im selben Verzeichnis...
Antworten