gpt4 book ai didi

python - 正确构建本地python3,支持bz2

转载 作者:行者123 更新时间:2023-12-04 16:04:56 26 4
gpt4 key购买 nike

我正在尝试构建 python3 的本地版本(特别是 python3.7,但与 3.6.6 相同的问题),但是在链接到某些 C 库和/或头文件时遇到了问题(至少这是我认为的问题)是)。

我能够构建 python3.7,但遇到 bzip2 的问题(但我怀疑还会有其他我不知道的系统库)。这在尝试导入需要它作为导入错误的各种包/模块时表现出来:

ModuleNotFoundError: No module named '_bz2'

从这个 stackoverflow 问题 - Ask Question - 看来我构建的 python 没有正确的 bz2 头文件。 python 构建本身不会失败。

具体问题是如何用bz2构建本地版本的python?更一般地,问题是如何正确链接到系统库? (因为可能还有其他我没有遇到错误)

就我所尝试的而言 - 我发现了这个(古老的)问题 -
How do you assign bz2 to an altinstall of python?而这个最近的问题 Compiling bz2 support in python2并基于这些尝试了一些东西。

我遇到的第一个问题实际上是找到正确的库等进行链接(上述问题中的解决方案建议设置 CFLAGS="-I/path/to/bz2/include"LDFLAGS="-L/path/to/bz2/lib" )。大概这些在我的系统上的某个地方(ubuntu 16.04),因为python2.7和python3.5的系统安装与bzip2没有问题。

我找到了 libbz2.so.1 (和其他一些) /lib/x86_64-linux-gnu/ - 但文件夹似乎没有遵循上面示例/答案的模式。因此,我构建了一个新的本地版本的 bz2(在我的本地文件夹中的 .bzp 中),然后在我尝试构建 python3.7 时尝试链接到该版本,使用以下命令:
./configure --prefix=/home/user/.localpython CFLAGS="-I/home/user/.bz2/include" LDFLAGS="-L/home/user/.bz2/lib"

我还尝试了更通用的配置(大致基于 Compile Python with bz2 support ,链接到上面的第二篇文章。)
./configure --prefix=/home/user/.python CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

(两者都失败了)

非常感谢任何指示、提示等 - 提前致谢!

最佳答案

默认情况下,Ubuntu 在编译 Python 时不会安装包含 bz2 支持(或任何其他此类库支持)所需的文件。您需要为库添加开发头文件包。

对于 bz2对 Ubuntu 的支持,那就是 libbz2-dev package .您需要为其他功能安装更多此类包。

该包将 header 放在标准位置,其中一个是 Python configure脚本知道找到。您不需要额外的标志。

Python 3.6 build dependencies on Ubuntu 17.10 推断,你还想要:

libbluetooth-dev
libbz2-dev
libdb-dev
libexpat1-dev
libffi-dev
libgdbm-dev
liblzma-dev
libmpdec-dev
libncursesw5-dev
libreadline-dev
libsqlite3-dev
libssl-dev
zlib1g-dev

如果你想支持 Tk GUI 库, tk-devblt-dev .

关于python - 正确构建本地python3,支持bz2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51149227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com