如何在Debian Lenny上使用ssl、readline和zlib编译Python 2.4.6



我有一个Debian 7.1的虚拟Linux盒子,我需要一个Python 2.4.6来恢复旧的Zope安装(当然是为了将其更新到Plone 4)。

我肯定需要ssl的支持,当然,在编译时,我也需要readline。最后,我当然需要zlib,否则ez_setup.py等将不起作用;我很难把zlib包括在内。

我下载了Python 2.4.6的tarball,在Modules/Setup.dist:中启用了ssl

SSL=/usr/local/ssl
_ssl _ssl.c 
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl 
        -L$(SSL)/lib -lssl -lcrypto

并称为:

./configure  --prefix=/my/dest/dir --with-zlib
make

make在最后给了我一些关于cryptnis的警告,但make install没有产生任何错误。然而,生成的Python同时支持readlinessl,但不支持zlib;因此,我无法使用ez_setup.py来获取setuptools/pip等

我尝试取消注释并重新排除行

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

来自CCD_ 16。

已安装的一些系统包:

  • zlib1g-dev
  • lib32z1-dev
  • libreadline-gplv2-dev

我还错过了什么吗?

更新,读取后https://stackoverflow.com/a/4047583/1051649:

我做了

$ sudo apt-get install zlib1g zlib1g-dev libncurses5-dev libreadline6-dev ncurses-doc
$ python setup.py clean
$ ./configure --with-ssl --with-zlib --prefix=...
$ make
$ sudo make install

生成的解释器无法执行distribute_setup.py

我在这里找到了解决方案:

我更改了setup.py,寻找对lib_dirs变量的第一个赋值,并将其更改为:

lib_dirs = self.compiler.library_dirs + [
'/lib64', '/usr/lib64',
'/lib', '/usr/lib',
'/usr/lib/x86_64-linux-gnu',   # added
'/usr/lib/i386-linux-gnu',     # added
]

然后我重复了整个过程,从setup.py clean开始,它成功了。

最新更新