0

我在这上面花了几个小时。似乎我们在 Linux 上的工作是调试在分散的发行版中不起作用的脚本,而不是完成工作。

Setup.py 试图找到它需要的东西并构建用于包装某些依赖项的 c 模块,如果它可以找到它需要的东西。这使得脚本相对于路径和文件名非常脆弱。

虽然很难从 .py 源中分辨出来,但对于 tkinter,我们似乎需要 tcl、tk 和 tix。这些的最新版本都已安装。我可以验证这一点,因为 SUSE 发行版 imports_tkinter 和 Tkinter 模块附带的 Python 2.6 可以正确运行测试脚本。

该脚本似乎需要找到这些库。我安装了 32 位和 64 位。所以,这些库存在: 32bit 64bit 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 也有同样的问题:它不会构建。一心一意。

谢谢你的帮助。

4

1 回答 1

0

我发现许多 rpm 包集的分发点。这使我能够安装单独的包,例如 tcl 的标头。但是,这是一个糟糕的方法,因为构建 Python 对 tkinter 支持的完整依赖层次结构大约有 60 个包。

我发现操作系统 11.3 版的 OpenSuSE 存储库包含我需要的一切。我的 Novell 发行版附带了 Novell 的存储库,其中几乎排除了所有开发包。

问题解决了。python 的品牌找到了 tkinter 的所有先决条件。

很抱歉发布这样一个问题。

于 2011-12-28T23:40:54.283 回答