当前位置: 首页 > 工具软件 > mod_python > 使用案例 >

MacOS安装mod_python

穆才良
2023-12-01

做了一个django的程序,部署在Apache上,环境是MacOS10.9.2,网上查资料得知要先安装mod_python,于是安装的mod_python的痛苦经历就开始了。

1、下载mod_python源文件,戳这里http://modpython.org/,我用的是3.3.1

2、解压后到mod_python的源码目录下,执行./configure,这一步是生成makefile文件,为编译使用,网上有说在./configure后面添加参数-- with-apxs=/usr/sbin/apxs,这里的目录是我机器的目录,每个人不一样,若不知道自己的apxs文件在哪里,可以find / -name apxs,我就是这么干的,虽然粗暴,但是简单。我自己试了下,不加这个参数也可以的,./configure会自动搜索,所以也不用担心

3、最痛苦的一步来了,就是make。make的时候一开始会出现下面的错误:

Building mod_python.so.


/usr/sbin/apxs -I/var/root/Downloads/mod_python-3.4.1/src/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE -Wc,'-arch x86_64' -c mod_python.c _apachemodule.c requestobject.c tableobject.c util.c serverobject.c connobject.c filterobject.c hlist.c hlistobject.c finfoobject.c version.c include/_apachemodule.h  include/filterobject.h  include/hlist.h include/mod_python.h  include/psp_flex.h include/psp_parser.h include/requestobject.h include/tableobject.h include/connobject.h include/finfoobject.h include/hlistobject.h include/mp_version.h include/_pspmodule.h  include/psp_string.h  include/serverobject.h include/util.h -arch x86_64 -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/ -ldl  -framework CoreFoundation 

/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch x86_64 -I/var/root/Downloads/mod_python-3.4.1/src/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -c -o mod_python.lo mod_python.c && touch mod_python.slo

env: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc: No such file or directory

apxs:Error: Command failed with rc=65536

.

make[1]: *** [mod_python.so] Error 1

make: *** [do_dso] Error 2

这里可以看到错误原因就是没找到/Application/..../cc文件,我就到那个目录下去看了下,缺失不存在,怎么办呢?然后发现在/Application/Xcode.app/Contents/Developer/Toolchains/下面的XcodeDefault.xctoolchain文件夹中有/usr/bin/cc,于是就使用下面的命令,创建一个链接,然后不就可以找到cc了么。

ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
然后这一步之后,make clean,重新make刚才那个错误就没有了,准备迎接新的错误吧:

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

error: command 'cc' failed with exit status 1

make[1]: *** [build] Error 1

make: *** [do_dso] Error 2

这个错误的原因查了很多地方,说的意思就是版本5.1的xcode在编译的时候更加严格(为啥用到xcode,我也不懂。。。),在对函数参数的检查上提高了等级,原来低版本中

得warning变成了error,所以此处我们要做的就是让这个参数的检查不要那么严格,于是make clean,然后

make ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
这样的话,编译就过了

4、最后一步就是make install,这一步的时候出现如下错误:

    version = "fatal: Not a git repository (or any of the parent directories): .git

                                                                                  ^

SyntaxError: EOL while scanning string literal

进入mod_python源码目录,然后进如dist子目录中,打开version.sh的文件,

To fix it, you can remove the line

GIT=`git describe --always`

and change the next line to

echo $MAJ.$MIN.$PCH-
上面是一个老外的解决办法,我试了果然就没有错误了,重新运行make install,mod_python安装完毕
 类似资料: