1

我正在尝试从 LFS 8.2-systemd 构建 Python 3.6.4,因此我运行了 configure 命令:

./configure --prefix=/usr       \
            --enable-shared     \
            --with-system-expat \
            --with-system-ffi   \
            --with-ensurepip=yes

其次是make -j。但是,此时 Python 找不到模块“pyexpat”,但该文件存在于/usr/lib/libexpat.so.

在阅读了使用 zlib 支持从源代码构建 Python之后,我创建了一个符号链接:

ln -s /usr/lib /usr/lib/x86_64-gnu-linux

如果我运行make install,我会收到一个错误:

ModuleNotFoundError:没有名为 pyexpat 的模块

我的 expat lib 版本是2.2.5.

我正在里面进行编译env -i chroot /mnt bash ,我的环境只包含一个有效的PATH变量LX_ALL=POSIX

4

2 回答 2

1

当我最初使用以下配置时,我在 python 3.6.8 遇到了同样的问题:

./configure --prefix=/opt/python-3.6/ --enable-optimizations

但是,当我重试使用 BLFS 书中的命令时:

./configure --prefix=/opt/python-3.6/ --enable-shared --with-system-expat --with-system-ffi --with-ensurepip=yes

我的 pyexpat 开始工作了。

话虽如此,我认为重试可能会有所帮助,因为我的第二个命令在功能上与您的相同。

于 2018-03-21T03:26:53.030 回答
-2
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

要使 python3 使用新安装的 python 3.6 而不是默认的 3.5 版本,请运行以下 2 个命令:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

最后通过命令在 python3 的两个 python 版本之间切换:

sudo update-alternatives --config python3

选择 3.6 版本后:

python3 -V
于 2019-04-25T11:49:12.677 回答