Назад | Перейти на главную страницу

Apache / mod_wsgi / Django не может найти общую библиотеку MySQL

Я застрял в случае, когда библиотеки MySQL не будут найдены на развернутом сервере Apache / mod_wsgi / Django, хотя только Python может правильно импортировать библиотеку.

Вот мои ошибки журнала Apache:

[Tue Jul 10 12:52:02 2012] [error] [client 127.0.0.1]   File "/remote/projects1/pdrtke/python/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/utils/importlib.py", line 35, in import_module
[Tue Jul 10 12:52:02 2012] [error] [client 127.0.0.1]     __import__(name)
[Tue Jul 10 12:52:02 2012] [error] [client 127.0.0.1]   File "/remote/projects1/pdrtke/python/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/db/backends/mysql/base.py", line 14, in <module>
[Tue Jul 10 12:52:02 2012] [error] [client 127.0.0.1]     raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
[Tue Jul 10 12:52:02 2012] [error] [client 127.0.0.1] ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

Я уже пробовал следующее:

Кажется, ни одно из этих действий не решило мою проблему. Есть ли очевидная вещь, которую я забыл учесть?

Теперь это исправлено. Это была моя глупая ошибка.

У меня изначально был LD_LIBRARY_PATH без хорошего каталога, так что исправил, но ... После изменения LD_LIBRARY_PATH, Я выпустил apachectl restart который, как описано в Apache, убивает только дочерние процессы и порождает новых дочерних процессов от существующего родителя.

Таким образом, новые дети сохранили старую версию LD_LIBRARY_PATH.

Я не совсем понимаю, почему я увидел "хороший" LD_LIBRARY_PATH с gdbс show environment. Но это другая история. Закрою свой первоначальный вопрос, который теперь решен.