2

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

from Tkinter import * 
import Tix
import ScrolledText   

我有 Python 3,没有Tix安装,程序崩溃。经过一番搜索,我将代码更改为:

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

我想知道如何正确修改代码以使其运行以及如何安装Tix.

原始形式的整个代码:http: //pastebin.com/JCqhNSRR

4

3 回答 3

7

我在这里测试了这个问题(Ubuntu 12.04.5)并且得到了同样的错误。浏览网页发现了关于此功能错误的争论。这是我找到解决方案的转录部分:

我在 Ubuntu 13.04 上,当我看到这个错误时,我安装了 tix-dev 包,一切正常。我相信它在 OSX 上同样简单,但我对此一无所知。此外,请确保您正在运行 Python 3.3,因为这是我正在开发/测试/使用 GUI 的唯一版本。

我安装了tix-dev( apt-get install tix-dev) 并使用 Python 2.7.3 和 Python 3.2.3 进行了测试,并且可以正常工作。

tkinterPython 3.3.3OSX 10.9.5Tix中的2.7.5中导入的测试与使用ActiveTcl 8.6.3.1的 Ubuntu 有相同的问题。

问题在于Tcl lib Tix。解决方案是重新编译支持 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 复制到libTix的路径,这些路径是由Tcl/Tk包安装的。

通常路径是/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()
>>> 
于 2015-03-27T18:36:44.687 回答
1

我对 Python 3.8 和 pyinstaller 3.0 有同样的问题

通过将位于 YOUR_PYTHON_INSTALL_PATH\Python38-32\Scripts\dist 中的文件夹 tix8.4.3 复制到dist文件夹来解决。

于 2020-08-22T06:35:15.127 回答
0

您应该使用语法from tkinter.tix import Tk, ScrolledText而不是from tkinter import scrolledtext.

于 2021-05-11T16:23:05.120 回答