无栈python导致mod_python/apache无法工作
我在看了几个网站后,安装了stackless python 2.6.2,大家说它和普通的python完全兼容。但是安装后,我发现我的django应用程序不再工作了。
我又重新安装了一次django(1.1),现在我有点迷茫。出现的错误是500:
内部服务器错误
服务器遇到了内部错误或配置错误,无法完成你的请求。
请联系服务器管理员,邮箱是webmaster@localhost,并告诉他们错误发生的时间,以及你可能做过的任何导致错误的操作。
关于这个错误的更多信息可能在服务器的错误日志中。
Apache/2.2.11(Ubuntu)DAV/2 PHP/5.2.6-3ubuntu4.1,带有Suhosin-Patch mod_python/3.3.1 Python/2.6.2 mod_ruby/1.2.6 Ruby/1.8.7(2008-08-11)mod_ssl/2.2.11 OpenSSL/0.9.8g 服务器地址是127.0.0.1,端口80
我还可以做些什么呢?
编辑:根据第一个评论,我明白问题不在django,而是在mod_python和apache上?所以我修改了问题的标题。
编辑2:我觉得某些路径设置可能有问题。我尝试从mod_python切换到mod_wsgi,终于正确设置了,但又遇到了下一个错误:
[Sun Aug 16 12:38:22 2009] [error] [client 127.0.0.1] raise ImproperlyConfigured("加载MySQLdb模块时出错:%s" % e)
[Sun Aug 16 12:38:22 2009] [error] [client 127.0.0.1] ImproperlyConfigured:加载MySQLdb模块时出错:没有名为MySQLdb的模块
Alan
1 个回答
当你安装一个新的Python版本(无论是普通版还是无栈版),你还需要重新安装所有你需要的第三方模块。这些模块可以从源代码安装,但你说你不想这样做,或者从为你刚安装的新版本Python准备好的包中安装。
所以,检查一下你是通过aptitude安装的Python 2.6.2的源:那里是否也有适合这个特定Python版本的mod_python、mysqldb、django,以及你可能需要的其他第三方工具?实际上,管理这些包并没有什么“灵丹妙药”,我也不知道有没有一种“超级发行版”的Python能把你可能需要的所有包都打包在一起(如果有的话,那得占用几十个GB的空间;-)。