我有一个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
在最后给了我一些关于crypt
和nis
的警告,但make install
没有产生任何错误。然而,生成的Python同时支持readline
和ssl
,但不支持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
开始,它成功了。