import bsddb.db, bsddb.dbshelve

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
pythonlite
User
Beiträge: 7
Registriert: Freitag 15. Oktober 2010, 08:54

ich habe ein Programm, das lässt sich nicht ausführen, weil die obigen import Befehle drin sind.
das Ergebnis sieht dann so aus:

Code: Alles auswählen

...
    import bsddb.db, bsddb.dbshelve
ImportError: No module named bsddb.db
ich verwende: Windows XP, Active Python 2.7 und habe irgendwo gelesen, das ab Version 2.6 bsddb "deprecated" ist.
ich bin mir jetzt nicht sicher, ob mir nur eine wie auch immer Windows bsddb Installation fehlt, oder das so überhaupt nicht funktionieren kann.
ein kurzer Hinweis evtl. wo ich das nachlesen kann (Englisch ok) reicht mir. Danke.
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

bsddb ist in der Tat in Python 3.x nicht mehr drin: Link

Und ich meine mich zu erinnern, dass bsddb unter Windows nicht per default installiert ist bzw. die benötigte Berkley DB Lib nicht dabei ist ... Finde dazu aber keinen passenden Link.

Gruß, noisefloor
pythonlite
User
Beiträge: 7
Registriert: Freitag 15. Oktober 2010, 08:54

das ist etwas zäh, da in der ActivePython Version 2.7 kein bsddb Verzeichnis vorhanden ist. Auch das zu 2.7 passende pybsddb 4.8.4 liess sich nicht installieren. Ein passendes Windows Packet gabs nur für die Version 2.6.

ich habe mir jetzt mal die Sourcen vom 2.6.6 angeschaut, da gibts das bsddb Verzeichnis noch.

Parallel installieren ist ja wegen der separaten Verzeichnisse kein Problem, aber wenn ich python von der Befehlszeile aufrufe, kanns nur das Highlander Prinzip geben. Hat jemand eine Idee wie ich die Klippen der Parallelinstallation hier umschiffen kann?
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

in dem du den richtigen SheBang in der 1. Zeile deines Skripts einträgst.

Gruß, noisefloor
pythonlite
User
Beiträge: 7
Registriert: Freitag 15. Oktober 2010, 08:54

Ahja Danke.
habs eben schon installiert. die 2.6.6 hat sich gar nicht erst im $PATH verewigt und ich rufe die einfach mit dem kompletten Pfad auf.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

noisefloor hat geschrieben: in dem du den richtigen SheBang in der 1. Zeile deines Skripts einträgst.
Unter Windows nicht so zielführend ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
pythonlite
User
Beiträge: 7
Registriert: Freitag 15. Oktober 2010, 08:54

Hyperion hat geschrieben:Unter Windows nicht so zielführend ;-)
stimmt, da kann stehen was will, selbst Windows Pfade interessieren nicht.

ist aber kein Problem. im $PATH ist die 2.7 und das soll auch so sein und wenn ich nur zu Testzwecken die 2.6.6 brauche rufe ich die einfach mit dem kompletten Pfad auf.

In Komodo habe ich einfach je einen Startlink auf je eine Version gesetzt. Das war problemloser als ich dachte.
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Unter Windows nicht so zielführend
Stimmt. Funktioniert wohl nur bei CGI-Skripten...

Gruß, noisefloor
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Virtualenv ist noch ganz interessant
the more they change the more they stay the same
Antworten