Как исправить сломанную установку BSDDB в пакете Python по умолчанию в Mac OS X 10.5 Leopard?
-
03-07-2019 - |
Вопрос
Выполните следующие действия при установке Python по умолчанию в Mac OS X 10.5 (Leopard) без инструментов разработчика:
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
мило, да?Как мне исправить это, не отказываясь от установки / настройки / обслуживания моего собственного пакета Python в соответствии с Предложение TMNC или с помощью MacPorts и т.д.?
Редактировать
Я решил проблему, установив Python2.4 и BSDDB через MacPorts.
Мой вопрос все еще остается в силе:почему нарушена установка по умолчанию и возможно ли это исправить.
Решение
Следуйте инструкциям на http://marc-abramowitz.com/archives/2007/11/28/hacking-os-xs-python-dbhash-and-bsddb-modules-to-work/ . р>
Другие советы
Эта проблема сохраняется в OSX 10.8.Мне не удалось установить bsddb3 с помощью macports py-bsddb3 в virtualenv.Что было очень просто и сработало, так это:
- установите db53 из macports
- загрузите и распакуйте исходный код bsddb3 (https://pypi.python.org/pypi/bsddb3/6.1.0)
- sudo python setup.py –berkeley-db-incdir=/opt/local/включить/db53 -berkeley-db-libdir=/opt/local/lib/db53 установить
Патч у меня не сработал, и мне пришлось заменить папку bsddb в /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
с bsddb3 в:
/usr/local/lib/python2.7/пакеты сайта/bsddb3
Убедитесь, что вы сделали резервную копию папки bsddb на всякий случай.
Решение, которое я нашел, состояло в том, чтобы установить ActivePython, покопаться в его библиотеке (находится в /Library/Frameworks/Python.framework/Versions/....your версия здесь .... / lib), скопировать и вставить < Файл strong> _bsddb.so в моем каталоге установки OS X 10.6 для Python 2.6 (/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6 /).
Это устранило отсутствующую проблему _bsddb, оставив меня с рабочей версией bsddb в моей родной установке python. Затем я просто удалил ActivePython ( инструкции здесь )
У меня была ошибка "Нет модуля с именем _bsddb". Оказывается, мне не нужно было обновлять мой bsddb. Я использовал файл .pkl, созданный в Windows. После переименования файла pkl, чтобы получить его, как Mac OSX Python воссоздает новый файл .pkl.db, и теперь он работает отлично.