我正在尝试从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
中。
阅读building Python from source with zlib support后,我创建了一个符号链接:
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
变量。
答案 0 :(得分: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开始工作了。
话虽如此,我认为重试可能会有所帮助,因为我的第二个命令在功能上与你的相同。
答案 1 :(得分:-1)
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