一个朋友给我发了一些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
我已经在这里测试了这个问题(Ubuntu 12.04.5),并遇到了同样的错误。浏览网页时发现了关于此功能错误的争论。这是我找到解决方案的转录部分:
我在 Ubuntu 13.04 上,当我看到此错误时,我安装了 tickets-dev 包,一切正常。我相信它在OSX上同样简单,但我对此一无所知。另外,请确保您运行的是Python 3.3,因为这是我开发/测试/使用GUI的唯一版本。
我安装了tix-dev
(apt-get install tix-dev
),并用Python 2.7.3和Python 3.2.3进行了测试并工作。
中导入tkinter
和在 OSX 10.9.5 中导入 2.7.5 中的Tix
的测试在使用 ActiveTcl 8.6.3.1 的 Ubuntu 中存在相同的问题。
问题出在 Tcl lib 票证上。解决方案是重新编译具有 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()
>>>
我在Python 3.8和pyinstaller 3.0上遇到了同样的问题
通过复制位于YOUR_PYTHON_INSTALL_PATH\Python38-32\Scripts\dist 到 dist 文件夹。
您应该使用语法from tkinter.tix import Tk, ScrolledText
而不是from tkinter import scrolledtext
导入库。