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

Tob*_*ias 5 python linux ssl debian zlib

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

我当然需要ssl支持,当我正在编译时,我readline当然也想要.最后,当然我需要zlib,否则ez_setup.py等等都行不通; 我很难被zlib包括在内.

我下载的Python 2.4.6的压缩包,启用sslModules/Setup.dist:

SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto
Run Code Online (Sandbox Code Playgroud)

......并呼吁:

./configure  --prefix=/my/dest/dir --with-zlib
make
Run Code Online (Sandbox Code Playgroud)

make给我一些警告大约在年底cryptnis,但make install不会产生任何错误.但是,由此产生的Python既支持readlinessl支持,但没有zlib; 因此,我无法使用ez_setup.pysetuptools/pip等.

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

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
Run Code Online (Sandbox Code Playgroud)

来自Setup.dist.

安装的一些系统包:

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

还有什么我错过的吗?

更新后,继续阅读/sf/answers/283330841/:

我做到了

$ 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
Run Code Online (Sandbox Code Playgroud)

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

Tob*_*ias 10

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

我改变了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
]
Run Code Online (Sandbox Code Playgroud)

然后我重复了整个事情,从开始setup.py clean,它起作用了.