python - 如何让 python 使用 libz 进行编译?

标签 python makefile python-3.3

我刚刚从源代码编译的 python 3.3 版本:

$ ldd ./python
    linux-gate.so.1 =>  (0xb776c000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb773b000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7736000)
    libutil.so.1 => /lib/i386-linux-gnu/libutil.so.1 (0xb7731000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7707000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7589000)
    /lib/ld-linux.so.2 (0xb776d000)

与我的 python3 系统版本 (3.2) 相比:

$ ldd `which python3`
    linux-gate.so.1 =>  (0xb7777000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7746000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7741000)
    libutil.so.1 => /lib/i386-linux-gnu/libutil.so.1 (0xb773c000)
    libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb76ef000)
    libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb754b000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7536000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb750c000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb738d000)
    /lib/ld-linux.so.2 (0xb7778000)
由于某种原因,libz 和其他一些库丢失了。我尝试了解决方案here ,但没有成功。我很困惑 - 有什么想法吗?

最佳答案

看起来答案就在 Modules/Setup(和 Modules/Setup.dist)中。取消注释行 358 就可以了:

# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

关于python - 如何让 python 使用 libz 进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764692/

相关文章:

Python正则表达式非贪婪匹配

python - 异征 : Problems with indentation

ubuntu - 加载共享库时出错 : libhdf5. so.101:无法打开共享对象文件

makefile - Makefile 中的复杂模式规则

python 3 : ImportError "No Module named Setuptools"

Python 3.3内部嵌套While循环不输出

Python:更改函数内的全局变量和全局列表元素

python - 在 SQLAlchemy Core 中使用 `with` 上下文管理器我如何知道事务是否回滚?

makefile - 如何在makefile配方中设置环境变量?

Python 多处理 - 如何监控内存使用情况?