64位系统编译Python,64位编译python,如果在64位系统下默认执


如果在64位系统下默认执行./configure编译python会使用32位的动态库,当安装mod_wsgi或者mod_python时会出错,这时候需要重新编译python来解决此问题。

下载python源码。比如2.6.5或2.6.6。解压后configure:
./configure --prefix=/usr/local --with-threads --enable-shared --enable-universalsdk

--prefix选项表示把目标编译到/usr/local这个目录中。

注意:

a. 如果只用./configure命令,那默认会编译出静态的.a以及32位的动态库。b. 最后一个选项非常重要。如果这个选项不加,那只会编译出32位的库。\

3. make &&make install

这时执行python,很有可能会报一个错:

libpython2.6.so.1.0:cannotopen shared object file: No such file or directory 

这是因为编译的libpython2.6.so.1.0是在/usr/local/python2.6/lib里面,可以做一个到/usr/lib64的软链接,或者直接把它复制过去就行了。

或者也可以这样:

echo‘/usr/local/python2.6/lib’ > /etc/ld.so.conf.d/opt-python2.6.conf

接着执行

ldconfig

最后可以通过以下命令验证是否存在64位的libpython:

ldconfig–p | grep python

看有没有类似“libpython2.6.so.1.0(libc6,x86-64) => /usr/local/python2.6/lib/libpython2.6.so.1.0”的输出。

评论关闭