在 Suse Linux Server 11.3 上安装 Python 2.7.2 找不到 tkinter 依赖项
Posted
技术标签:
【中文标题】在 Suse Linux Server 11.3 上安装 Python 2.7.2 找不到 tkinter 依赖项【英文标题】:Python 2.7.2 install on Suse Linux Server 11.3 can't find tkinter dependencies 【发布时间】:2011-12-27 22:48:03 【问题描述】:我已经为此花费了数小时。似乎我们在 Linux 上的工作是调试在分散的发行版中不起作用的脚本,而不是完成工作。
Setup.py 试图找到它需要的东西,并构建用于包装某些依赖项的 c 模块,如果它可以找到它需要的东西。这使得脚本相对于路径和文件名非常脆弱。
虽然很难从 .py 源中分辨出来,但对于 tkinter,我们似乎需要 tcl、tk 和 tix。这些的最新版本都已安装。我可以验证这一点,因为 SUSE 发行版 imports_tkinter 和 Tkinter 模块附带的 Python 2.6 可以正确运行测试脚本。
脚本似乎需要查找库。我安装了 32 位和 64 位。因此,这些库存在: 32位 64位 libtk8.5.so /usr/lib /usr/lib64 libtcl8.5.so " "
这两个路径都包含在 Setup.py 中的相应搜索列表中。但是,我认为 Setup.py 不会搜索正确的文件名。它似乎搜索以 tk 和 tcl 开头的文件,连接各种不同的版本(包括“8.5”)。但是,文件名不以“lib”开头。在我开始更多地篡改之前,Python.org 的人真的能把这件事搞得这么糟糕吗?这似乎不太可能。 SUSE Linux 是一个如此奇怪的发行版吗?这似乎也不太可能。
我不认为 setup.py 会查找二进制文件(在运行时看起来很重要......)但它们存在于 usr/lib 和 usr/lib64 中。
我能找到的唯一包含文件是 tclextend。它是 usr/include 中的 tclextend.h。我找不到 tcl 或 tk 的其他 .h 文件。当然,Python c 包装器所需的包含文件随 Python 2.7 的下载提供。
所以,我有点不知所措了。这是对时间的巨大浪费。有没有办法跳过构建过程而只构建 tcl/tk 支持?我对 ssl 也有同样的问题:它不会构建。一次只做一件事。
感谢您的帮助。
【问题讨论】:
我认为 Tcl 和 to 的 -devel 包可能没有安装,尽管我认为它们是。我有所有开发包的完整目录。我将下载并安装它们,看看是否能解决这个问题。 【参考方案1】:我发现许多 rpm 包集的分发点。这使我能够安装单独的包,例如 tcl 的标头。但是,这是一个糟糕的方法,因为构建 Python 对 tkinter 支持的完整依赖层次结构大约有 60 个包。
我发现 11.3 版操作系统的 OpenSuSE 存储库包含我需要的一切。我的 Novell 发行版附带了 Novell 的存储库,几乎排除了所有开发包。
问题解决了。 python的make找到了tkinter的所有先决条件。
很抱歉发布这样的问题。
【讨论】:
以上是关于在 Suse Linux Server 11.3 上安装 Python 2.7.2 找不到 tkinter 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
SUSE Linux Enterprise Server 12 Install