2012-07-30 67 views
0

这是我的第一个金字塔应用程序,我试过什么解决方案,我可以找到,但没有人为我工作。我不断收到内部服务器错误和错误日志显示:金字塔框架:Apache + mod_wsgi - MySQLdb导入错误

Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1]  import MySQLdb as mysql 
[Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1] File "build/bdist.macosx-10.7-   intel/egg/MySQLdb/__init__.py", line 19, in <module> 
[Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1] File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 7, in <module> 
[Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1] File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 6, in __bootstrap__ 
[Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1] ImportError: dlopen(/Users/anupamtulsyan/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib 
[Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1] Referenced from: /Users/anupamtulsyan/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so 
[Tue Jul 31 02:02:23 2012] [error] [client 127.0.0.1] Reason: image not found 
[Tue Jul 31 02:02:24 2012] [error] [client 127.0.0.1] File does not exist: /opt/local/apache2/htdocs/favicon.ico 

我的mysql和python都是64位安装。文件'libmysqlclient.18.dylib'存在于/ usr/local/mysql/lib中。 我能够在使用以下服务应用程序时导入MySQLdb: ../bin/pserver development.ini 但是,当通过mod_wsgi运行时,上述错误不断出现。请有人帮忙!自2天以来我一直坚持这一点。

+0

这是不是一个真正的答案,但我会建议使用nginx + uWSGI,安装起来相当简单,速度也很快。另外考虑使用virtualenvs。尝试使用brew或macports安装nginx和python,并保持“默认”python清洁。从来没有真正成功使用默认的OSX配置。除了简单的Apache的东西。 – 2012-07-31 10:54:30

回答

2

看起来libmysqlclient.18.dylib不在Apache的路径上。所以,你可能需要将其设置在/usr/sbin/envvars类似:

DYLD_LIBRARY_PATH="/usr/lib:/usr/local/mysql/lib:$DYLD_LIBRARY_PATH" 

不同的地方你的mysql的lib是,然后重新启动Apache。

我想你可能还可以构建MySQLdb的前设置DYLD_RUN_PATH,它会使用该路径在_mysql.so - 避免了需要设置DYLD_LIBRARY_PATH