14

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

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

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

4

6 回答 6

26

在我的 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
于 2013-03-19T06:35:51.687 回答
2

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

此外,您可能必须进行编辑setup.py以指示可以找到这些包的位置。

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

于 2012-09-03T09:50:08.777 回答
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
于 2013-12-09T10:51:45.947 回答
1

通常,请参阅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
于 2022-01-03T11:04:20.520 回答
0

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

https://linoxide.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

我选择不安装sqlitetkinter因为我不需要它们,但过程是相同的。只需包括在@simp76 的答案中找到的那些依赖项。

我刚刚在 DO droplet 上全新安装 Ubuntu 20.04 上运行了这个过程,它运行完美。

于 2021-02-17T00:30:09.623 回答
0

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

但我还必须安装未在此处列出的 tk-dev。

于 2015-09-20T06:28:52.693 回答