在Mac上让Apache运行Python

0 投票
1 回答
2057 浏览
提问于 2025-04-16 21:28

我刚买了一台新Mac,想让它运行Apache服务器,并使用mod_python、mod_wsgi和Django。我有一个测试文件test.py,里面的内容很简单:

#!/usr/bin/python print "Content-type: text/html" print print "<html><head>" print "" print "</head><body>" print "Test Page" print "</body></html>"

我刚下载了Xcode 4,通过MacPorts安装了Apache、PHP5和mod_wsgi,按照这些网站上的步骤进行操作:

http://www.phpied.com/installing-php-and-apache-on-mac-osx-that-was-pretty-easy/ http://heisel.org/blog/2009/09/25/mod-wsgi-mac/

但不知为何,mod_python无法正常工作,所以我从svn下载了最新的源代码,并执行了标准的命令:

./configure --with-apxs=/opt/local/apache2/bin/apxs make sudo make install

然后我在httpd.conf文件中配置了LoadModule,像这样:LoadModule blah modules/blah.so。

当我用下面的命令启动Apache时:

sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start

然后在浏览器中访问test.py,结果看到的却是整个文件的纯文本,这显然是不对的。我在httpd.conf中开启了Python调试,再次访问test.py时,出现了这样的提示:

MOD_PYTHON ERROR

ProcessId:      93626
Interpreter:    'dfelsmanmpx6.blah.blah'

ServerName:     'dfelsmanmpx6.blah.blah'
DocumentRoot:   '/Users/me/folder/workspace/'

URI:            '/test.py'
Location:       None
Directory:      '/'
Filename:       '/Users/me/folder/workspace/test.py'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'text'

Traceback (most recent call last):

  File "/Library/Python/2.6/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/Library/Python/2.6/site-packages/mod_python/importer.py", line 1202, in _process_target
    module = import_module(module_name, path=path)

  File "/Library/Python/2.6/site-packages/mod_python/importer.py", line 304, in import_module
    return __import__(module_name, {}, {}, ['*'])

ImportError: No module named text

有没有人知道哪里出错了,或者知道在Mac上用Xcode 4怎么做的教程吗?(是的,我在研究中发现这很重要,因为Xcode 4去掉了一些架构支持,导致某些模块过时了)

1 个回答

0

正如@ignatio-vazquez-abrams提到的,mod_python已经不再被推荐使用了,但如果你还是想用它,可以看看Homebrew。安装好Homebrew后,你可以在终端里运行brew install mod_python来安装它。安装完成后,你会看到一条提示,告诉你需要把编译好的mod添加到你的Apache配置中(同时也会有一个不推荐使用的警告)。

撰写回答