_tkinter TclError: 找不到 Tix 包

2 投票
3 回答
12448 浏览
提问于 2025-04-18 00:48

一个朋友给我发了一些Tkinter/Tix的代码,但那是针对Python 2的:

from Tkinter import * 
import Tix
import ScrolledText   

我现在用的是Python 3,而且没有安装,所以程序崩溃了。经过一些搜索,我把代码改成了:

from tkinter import * 
from tkinter import tix
from tkinter import scrolledtext  

这是我在网上找到的。我不知道这样改是否正确。但是代码还是不能运行,崩溃在

root = tix.Tk()

File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/tix.py, line 221, in __init__
    self.tk.eval('package require Tix')

_tkinter.TclError: can't find package Tix

我想知道怎么正确修改代码让它能运行,以及怎么安装

原始代码的完整内容在这里:

http://pastebin.com/JCqhNSRR

3 个回答

0

你应该用这个方式来导入库:from tkinter.tix import Tk, ScrolledText,而不是用from tkinter import scrolledtext

1

我在使用Python 3.8和pyinstaller 3.0的时候也遇到了同样的问题。

解决办法是把位于 YOUR_PYTHON_INSTALL_PATH\Python38-32\Scripts\dist 的tix8.4.3文件夹复制到dist文件夹里。

7

我在这里(Ubuntu 12.04.5)测试了这个问题,结果也遇到了同样的错误。在网上浏览时,发现有关于这个功能错误的讨论。这里有一段我找到解决方案的记录:

我在Ubuntu 13.04上,当我看到这个错误时,我安装了tix-dev这个包,结果一切都正常了。我相信在OSX上也差不多简单,但我对那边的情况不太了解。另外,确保你使用的是Python 3.3,因为这是我开发/测试/使用这个图形界面的唯一版本。

我安装了tix-dev(用apt-get install tix-dev命令),并在Python 2.7.3和Python 3.2.3上测试过,结果都能正常工作。

OSX 10.9.5上测试导入tkinter(在Python 3.3.3中)和Tix(在2.7.5中)时,遇到的问题和在Ubuntu上使用ActiveTcl 8.6.3.1时一样。

问题出在Tcl库的库上,解决办法是重新编译这个库,确保它支持64位。

我用来编译的参数是:

$ ./configure --enable-64bit --enable-threads --enable-framework --enable-aqua --enable-corefoundation

为了确保它们被编译为64位平台,可以运行以下命令:

$ lipo -info libTix8.4.3.dylib
Non-fat file: libTix8.4.3.dylib is architecture: x86_64

编译完成后,把libTix8.4.3.dylib复制到Tcl/Tk包安装的libTix路径下。

通常这个路径是/Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib/Tix8.4.3/libTix8.4.3.dylib

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import tix
>>> root = tix.Tk()
>>> 

撰写回答