ZODB FileStorage

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

ZODB FileStorage

Beitragvon INFACT » 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? :(
ein kleines game für die die lust haben http://konaminut.mybrute.com
;-)
BlackJack

Beitragvon 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?
Benutzeravatar
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Beitragvon INFACT » 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...?
ein kleines game für die die lust haben http://konaminut.mybrute.com

;-)
Lonestar
User
Beiträge: 147
Registriert: Samstag 9. August 2008, 08:31

Beitragvon Lonestar » 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
Benutzeravatar
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Beitragvon INFACT » 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!
ein kleines game für die die lust haben http://konaminut.mybrute.com

;-)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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?
Benutzeravatar
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Beitragvon INFACT » 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?
ein kleines game für die die lust haben http://konaminut.mybrute.com

;-)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Beitragvon str1442 » 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

import self

Beitragvon farid » 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. ;)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: import self

Beitragvon Leonidas » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder