Python 3.3源代码设置:找不到模块:_lzma _sqlite3 _tkinter

问题描述 投票:0回答:7

我正在尝试按照 python 开发人员指南在 Ubuntu 12.04 上设置 CPython 的编译版本。 即使安装了依赖包lzma和sqlite3后,构建仍失败,表明未找到依赖模块。 确切错误:

*Python 构建已完成,但未找到构建这些模块所需的位: _lzma _sqlite3 _tkinter
要查找必要的位,请在 detector_modules() 中的 setup.py 中查找模块名称。*

我找不到 tkinter 包。感谢任何帮助。

python python-3.3
7个回答
28
投票

在我的 Ubuntu Precise 盒子上安装以下软件包后,我能够构建

Python 3.3
而无需修改
setup.py

build-essential 
zlib1g-dev 
libbz2-dev 
libncurses5-dev 
libreadline6-dev 
libsqlite3-dev 
libssl-dev 
libgdbm-dev
liblzma-dev
tk8.5-dev

7
投票

一般来说,请参阅 Python 开发人员指南 了解依赖关系。那里写着:

“如果您想构建所有可选模块,请安装以下软件包及其依赖项”:

sudo apt-get install build-essential gdb lcov pkg-config \
  libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \
  libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \
  lzma lzma-dev tk-dev uuid-dev zlib1g-dev

2
投票

找不到 lzma 和 sqlite3 可能是因为您的路径(特别是 LD_LIBRARY_PATH)不正确。你是如何安装这两个包的?你用过包管理器吗?如果您手动安装,那么它们安装在哪里?另外,如果您使用包管理器安装lzma和sqlite3,您是否安装了development版本?从源代码安装时,您将需要开发版本,以便 Python 源代码可以找到必要的包含文件。

此外,您可能需要编辑

setup.py
以指示可以在哪里找到这些包。

至于 tkinter:这依赖于 tcl/tk,因此如果您从源代码安装 python/tkinter,请检查您是否安装了这些软件包的开发版本。


1
投票

这对我有用(Python 3.4,Ubuntu 13.04),意味着“make”干净地完成:

sudo apt-get install build-essential python-dev libncurses*-dev \
                     liblzma-dev libgdbm-dev libsqlite3-dev \
                     libbz2-dev tk-dev

安装:

cd python3.4
make clean && ./configure && make && sudo make install

0
投票

我使用了这里的说明: python-on-debian-wheezy

但是我还必须安装 tk-dev,它没有在那里列出。


0
投票

在 2021 年的 Ubuntu 20.04 上遇到了一些困难(以防有人来到这里寻找更新的指令集)。发现这篇文章非常有用:

https://linoxy.com/ubuntu-how-to/install-python-3-9-on-ubuntu-20-04-lts/

在 Ubuntu 上,您可以使用

apt
安装依赖项,因此只需知道哪个即可。我使用的构建命令如下:

# Update repo, very important on fresh server install
apt update
# Install dependencies
apt install gcc build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
# Configure with optimizations
./configure --enable-optimizations
make -j 4 # 4 cores
make test # Shows you anything you missed
# https://docs.python.org/3/using/unix.html#building-python 
make altinstall

我选择不安装

sqlite
tkinter
,因为我不需要它们,但过程是一样的。只需包含@simp76 的答案中找到的依赖项即可。

我刚刚在 DO Droplet 上全新安装的 Ubuntu 20.04 上运行了此过程,并且运行完美。


0
投票

做了

`sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev tk-dev``

© www.soinside.com 2019 - 2024. All rights reserved.