Wie Fix Broken BSDDB Installieren in das Standard-Python-Paket auf Mac OS X 10.5 Leopard?
Gehen Sie auf die Standard-Python-Installation auf Mac OS X 10.5 (Leopard) w/Entwickler-Werkzeuge:
noel ~ : python
Python 2.5.1 (r251:54863, Jan 13 2009, 10:26:13)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import bsddb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/bsddb/__init__.py", line 51, in <module>
import _bsddb
ImportError: No module named _bsddb
nett, nicht wahr? Wie kann ich dieses Problem beheben, ohne aufzugeben und der Installation/Konfiguration/Wartung meiner eigenen Python-Paket pro TMNC Vorschlag oder über MacPorts etc?
Bearbeiten
Ich bin gegangen, um das problem durch die Installation von Python2.4 und BSDDB via MacPorts.
Meine Frage steht immer noch: warum ist die Standard-Installation kaputt und ist es möglich, um es zu beheben.
Da der Hersteller-version ist gebrochen, das ist eine extrem gute Erklärung dafür, warum Sie wollen würde, um zu halten eine separate version, die SIE pflegen, anstatt des Verkäufers. Gehen verwenden MacPorts.
InformationsquelleAutor Noel | 2009-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgen Sie den Anweisungen auf http://marc-abramowitz.com/archives/2007/11/28/hacking-os-xs-python-dbhash-and-bsddb-modules-to-work/ .
Das ist ein guter Vorschlag... es ist nicht, dass Sie bei Installation/Wartung ein weiteres bsddb version, die Sie installieren, ist die erste, die funktioniert 🙂 Es gibt keine _bsddb überall auf dem system, so dass Sie gehen zu müssen, um etwas zu produzieren, die fehlende Funktionalität, die erforderlich ist.
Du hast Recht, dass es nicht _bsddb Modul, aber es gibt ein Modul bsddb. Ich bitte um eine technische Erklärung, warum _bsddb ist es, und wenn es möglich ist, das Verhalten ändern zu verwenden, die bsddb.
die bsddb-Modul zu laden versucht die _bsddb Erweiterung-aber die letztere kann nur aufgebaut werden, wenn libbsddb vorhanden ist, und es ist nicht standardmäßig auf MacOSX. So, Abramowitz zeigt einen Weg, den Sie beheben können, dass. Es gibt keine Weise, die Sie verwenden können, die bsddb-Modul, wenn die letztere kann nicht geladen werden die zugrunde liegenden _bsddb, so dass das, was man beseitigen muss.
Wenn Sie installieren bsddb3, müssen Sie importieren bsddb3 als bsddb, es sei denn, Sie wollen weitere hacking (umbenannt &c). Abramowitz ' s von patch zu patch dbhash.py nur führt diese änderung in diesem Modul.
InformationsquelleAutor Alex Martelli
Dieser Schmerz auf OSX 10.8. Konnte ich nicht installieren bsddb3 mit macports py-bsddb3 in ein virtualenv. Was war sehr einfach und hat funktioniert:
Für jedermann mit Gebräu, das die entsprechende Formel ist
berkeley-db
InformationsquelleAutor rhoerbe
Der patch hat bei mir nicht funktioniert und ich hatte zu ersetzen, die bsddb-Ordner in
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
mit der bsddb3 in:
/usr/local/lib/python2.7/site-packages/bsddb3
Stellen Sie sicher, sichern die bsddb-Ordner nur für den Fall.
InformationsquelleAutor rafaelvalle
Einer Lösung, die ich fand, war zu installieren, ActivePython, Graben sich in seine Bibliothek (befindet sich in /Library/Frameworks/Python.framework/Versions/....Ihre version hier..../lib und kopieren und fügen Sie den _bsddb.so Datei in mein OS X 10.6, native python 2.6 install-Verzeichnis (/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/).
Fest, dass die fehlende _bsddb Problem und ließ mich mit einer funktionierenden version von bsddb in meine native python installieren. Dann habe ich einfach deinstalliert ActivePython (Anleitung hier)
InformationsquelleAutor lef
Den Fehler den ich hatte war "No Modul named _bsddb". Schalte es aus ich habe nicht brauchen, um ein upgrade für meine bsddb. Ich wasusing .pkl-Datei in windows. Nach der Umbenennung der pkl-Datei, um es aus dem Weg Mac OSX Python neu erstellt eine neue .pkl.db-Datei und jetzt funktioniert es perfekt.
InformationsquelleAutor Theo