首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用libz编译python?

如何使用libz编译python?
EN

Stack Overflow用户
提问于 2012-03-19 11:34:10
回答 3查看 3.7K关注 0票数 1

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

代码语言:javascript
复制
$ 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):

代码语言:javascript
复制
$ 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,但它不起作用。我被难住了-有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2012-03-19 13:08:40

看起来答案在Modules/Setup (和Modules/Setup.dist)中。取消注释行358做到了这一点:

代码语言:javascript
复制
# 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
票数 1
EN

Stack Overflow用户

发布于 2012-03-19 11:40:00

尝试使用--with-libs。见下文。

代码语言:javascript
复制
Python-3.3.0a1/configure --help | grep lib 
.... 
--with-libs='lib1 ...'  link against additional libs
....

在配置-- with -libs='libz‘之后,我在config.log中看到了"--with-system-zlib“。这应该是你要找的东西。

票数 0
EN

Stack Overflow用户

发布于 2017-05-08 22:48:19

只需确保在运行配置和make之前安装所需的库,例如:

代码语言:javascript
复制
yum install sqlite-devel
yum install zlib-devel
yum install openssl-devel

./configure --enable-shared
make install

如果你第一次忘记了,没问题,再试一次。如果您稍后要构建依赖于Python的其他程序(例如Django所需的mod_wsgi ),那么使用--enable-shared是一个好主意。

如果在运行python3时看到“加载共享库时出现错误: libpython3.5m.so.1.0:无法打开共享对象文件:没有这样的文件或目录”,其中一个解决方案是:

代码语言:javascript
复制
cp /usr/local/lib/libpython3.5m.so.1.0 /usr/lib64/

否则,将其添加到LD_LIBRARY_PATH。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9764692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档