我正在尝试通过遵循python开发人员指南在Ubuntu 12.04上设置CPython的编译版本。 即使在安装依赖包lzma和sqlite3之后,构建也会失败,表明找不到依赖模块。 确切错误:
* Python构建完成,但找不到构建这些模块的必要位:
_lzma _sqlite3 _tkinter
要查找必要的位,请在detect_modules()中的setup.py中查找模块的名称。*
我无法找到包tkinter。感谢任何帮助。
答案 0 :(得分:20)
在我的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
答案 1 :(得分:2)
缺少查找lzma和sqlite3可能是因为您的路径(特别是LD_LIBRARY_PATH)不正确。你是如何安装这两个包的;你使用包管理器了吗?如果您手动安装,您在哪里安装它们?另外,如果您使用包管理器安装lzma和sqlite3,您是否安装了开发版本?从源代码安装时,您需要开发版本,因此Python的源代码可以找到必要的包含文件。
此外,您可能需要修改setup.py
以指明可以找到这些包的位置。
至于tkinter:这依赖于tcl / tk,所以如果从源代码安装python / tkinter,请检查是否安装了这些软件包的开发版本。
答案 2 :(得分: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
答案 3 :(得分: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
我选择不安装 sqlite
或 tkinter
,因为我不需要它们,但过程是相同的。只需包含在@simp76 的答案中找到的那些依赖项。
我刚刚在 DO droplet 上全新安装了 Ubuntu 20.04 时完成了这个过程,并且运行完美。