ZODB FileStorage

Probleme bei der Installation?
Antworten
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Samstag 31. Januar 2009, 19:28

Hallo, ich lese gerade das Buch "Das Python Praxisbuch" und bin in Kapitel 13 - Persistenz und Datenbanken . Ich habe ZODB mit easy_install.exe vom Python Ordner installiert. Nun steht im ersten Programm:

Code: Alles auswählen

from ZODB import FileStorage, DB
Mein Problem ist nun, dass FileStorage nicht in ZODB ist, das heißt das wenn ich

Code: Alles auswählen

"FileStorage" in dir(ZODB)
eingebe, ich False erhalte.
Wie kann ich das nun anders lösen, weil ich noch keine Ahnung von ZODB habe. Das ist ja auch mein erstes Programm. Was kann ich tun? :(
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
BlackJack

Samstag 31. Januar 2009, 19:44

Wo ist denn das Problem? Hast Du denn mal versucht `FileStorage` zu importieren und eine Fehlermeldung bekommen, oder bist Du bloss verwundert, dass dieses Modul nicht ohne es zu importieren im Package-Modul enthalten ist?
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Samstag 31. Januar 2009, 20:02

BlackJack hat geschrieben:Wo ist denn das Problem? Hast Du denn mal versucht `FileStorage` zu importieren und eine Fehlermeldung bekommen, oder bist Du bloss verwundert, dass dieses Modul nicht ohne es zu importieren im Package-Modul enthalten ist?
Das erste:
Wenn ich dieses "Script" ausführe:

Code: Alles auswählen

import logging

import ZODB
import ZODB.FileStorage
db = ZODB.DB(
    ZODB.FileStorage.FileStorage(r'C:\Dokumente und Einstellungen\Robin\Desktop\Python\ZODB')
)
root = db.open().root()

logger=logging.getLogger('FileStorage')

Erhalte ich immer folgende Fehlermeldung:

Code: Alles auswählen

>>> ================================ RESTART ================================
>>> 

Traceback (most recent call last):
  File "C:/Dokumente und Einstellungen/Robin/Desktop/Python/Datenbanken/ZODB.py", line 3, in <module>
    import ZODB
  File "C:/Dokumente und Einstellungen/Robin/Desktop/Python/Datenbanken\ZODB.py", line 4, in <module>
    import ZODB.FileStorage
ImportError: No module named FileStorage
Ich möchtenun wissen, wie ich das FileStorage erstezen kann.
Aber ich frage mich wozu du das fragst, es läuft doch auf das gleiche hinaus, oder...?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Lonestar
User
Beiträge: 147
Registriert: Samstag 9. August 2008, 08:31

Samstag 31. Januar 2009, 20:10

evtl solltest du dein Beispielscript erst einmal umbenennen?
Guck mal nach was du importierst und wie dein Script heisst
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Samstag 31. Januar 2009, 20:17

Lonestar hat geschrieben:evtl solltest du dein Beispielscript erst einmal umbenennen?
Guck mal nach was du importierst und wie dein Script heisst
Das hat mir geholfen, aber warum. Ich meine, es müsste doch klar sein, dass ein Script sich nicht selber importieren sollte?
Naja ich kann es ja nicht ändern.
Vielen Dank!
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 31. Januar 2009, 20:34

INFACT hat geschrieben:Das hat mir geholfen, aber warum. Ich meine, es müsste doch klar sein, dass ein Script sich nicht selber importieren sollte?
Warum sollte das klar sein?
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Samstag 31. Januar 2009, 21:49

Leonidas hat geschrieben:
INFACT hat geschrieben:Das hat mir geholfen, aber warum. Ich meine, es müsste doch klar sein, dass ein Script sich nicht selber importieren sollte?
Warum sollte das klar sein?
Warum sollte man sein eigenes Programm importieren?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 31. Januar 2009, 22:43

INFACT hat geschrieben:Warum sollte man sein eigenes Programm importieren?
Um auf einfache Weise eine Referenz auf das aktuelle Modul zu bekommen. Und weil es, nunja, eigentlich auch logisch ist. Wenn in ``sys.path`` ``.`` an erster Stelle ist, dann würde man auch erwarten, dass die Skripte die ``.`` liegen auch vor denen die weiter hinten im ``sys.path`` liegen importiert werden.
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Sonntag 1. Februar 2009, 09:46

PEP8 hat geschrieben:Törichte Konsistenz ist des Kleingeistes Kobold
Das ist der wohl tollste Satz aus der PEP8 Übersetzung :)
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Dienstag 10. Februar 2009, 14:06

Leonidas hat geschrieben:
INFACT hat geschrieben:Warum sollte man sein eigenes Programm importieren?
Um auf einfache Weise eine Referenz auf das aktuelle Modul zu bekommen. Und weil es, nunja, eigentlich auch logisch ist. Wenn in ``sys.path`` ``.`` an erster Stelle ist, dann würde man auch erwarten, dass die Skripte die ``.`` liegen auch vor denen die weiter hinten im ``sys.path`` liegen importiert werden.
Richtig.

Das mit dem Importieren des eigenen Programms sollte eigentlich eine FAQ sein. Ist mir auch schon oefters passiert, wenn auch nicht so direkt und unmittelbar. ;)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 10. Februar 2009, 15:18

farid hat geschrieben:Das mit dem Importieren des eigenen Programms sollte eigentlich eine FAQ sein. Ist mir auch schon oefters passiert, wenn auch nicht so direkt und unmittelbar. ;)
[wiki=FAQ#WarumFunktionierenImportierteModuleNicht]Tatsache[/wiki].

Das ist mir anfangs auch passiert und dann später nochmal, als ich ``parser`` überdeckt habe und wo RuleDispatch Probleme bekommen hat. Also habe ich den Abschnitt mal in die FAQ hinzugefügt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten