文平 2009年11月27日 星期五 14:24 | 2238次浏览 | 0条评论
一、stackless编译:
编译.so文件,需要这些参数:./configure --enable-shared --enable-stacklessfewerregisters
在一个干净的centos5.3上编译stackless,不用yum安装包,其实没我想象中麻烦,下载这些rpm包,安装(rpm -i packagename):
db4-devel-4.3.29-9.fc6.i386.rpm
bzip2-devel-1.0.3-4.el5_2.i386.rpm
libsepol-devel-1.15.2-1.el5.i386.rpm
e2fsprogs-devel-1.39-20.el5.i386.rpm
keyutils-libs-devel-1.2-1.el5.i386.rpm
libselinux-devel-1.33.4-5.1.el5.i386.rpm
krb5-devel-1.6.1-31.el5.i386.rpm
zlib-devel-1.2.3-3.i386.rpm
openssl-devel-0.9.8e-7.el5.i386.rpm
sqlite-devel-3.3.6-2.i386.rpm
libtermcap-devel-2.0.8-46.1.i386.rpm
readline-devel-5.1-1.1.i386.rpm
二、 setuptools不兼容cython:
setuptools(0.6c9)中extension.py专门判断是否有Pyrex包,没有就主动将.pyx文件后缀改成.c,如果我是用Cython代替Pyrex做的setup.py,如:
from Cython.Distutils import build_ext
ext_modules=[
Extension("primes", ["primes.pyx"]),
Extension("spam", ["spam.pyx"]),
]
那setup.py build就会出错。我在编译concurrence时碰到的,解决办法:
from Cython.Distutils import build_ext
import sys, Cython
sys.modules['Pyrex'] = Cython
这个问题是在linux下发现的,本想在linux下解决,发现不会debug,在代码中加了些log,也没找到原因。最后还是回windows下debug几次就找出来啦。真想请教熟悉linux的大侠,碰到这些怪异情况(不熟悉代码、不熟悉其执行流程,同时也不想先看distutils代码了解它工作流程),除了debug,还有什么方法能快点找出问题所在?
Zeuux © 2024
京ICP备05028076号
暂时没有评论