Python _tkinter错误:can';找不到包裹提示
一位朋友给我发送了一些Tkinter/Tix代码,但它是针对Python 2的:Python _tkinter错误:can';找不到包裹提示,python,macos,python-3.x,tkinter,tix,Python,Macos,Python 3.x,Tkinter,Tix,一位朋友给我发送了一些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 这是我在网上找到的。我不知道这是不是一个正确的方法。但
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
完整的原始代码:
我在这里测试了这个问题(Ubuntu 12.04.5),并得到了相同的错误。在网上浏览会引发关于此功能错误的争论。这是我找到解决方案的转录部分: 我在Ubuntu 13.04上,当我看到这个错误时,我安装了tix开发包,一切正常。我相信它在OSX上也很简单,但我对此一无所知。另外,请确保您正在运行Python3.3,因为这是我正在开发/测试/使用GUI的唯一版本 我安装了
tix-dev
(apt-get-install-tix-dev
),并使用Python 2.7.3和Python 3.2.3进行了测试,效果良好
在Python 3.3.3中导入tkinter
和在OSX 10.9.5中导入2.7.5中导入Tix
的测试与使用ActiveTcl 8.6.3.1的Ubuntu有相同的问题
问题在于Tcllib。解决方案是使用64位支持重新编译lib
我用来编译的标志是:
$ ./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\u 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()
>>>
我对Python3.8和pyinstaller 3.0也有同样的问题
通过复制位于中的文件夹tix8.4.3解决
您的\u PYTHON\u安装\u PATH\Python38-32\Scripts\dist到dist文件夹。您应该使用语法从tkinter导入库。tix import Tk,scrolled text
而不是tkinter import scrolled text我相信您已经看到了这一点,但如果没有看到,你试过这里的步骤了吗?:我删除了我的答案,因为它显然不起作用。我将很快地注意到主要内容(因为链接作为起点可能会稍微有用):详细说明一个相同的问题。他们建议从一个链接安装Tcl和Tk(具体取决于OS X的哪个版本),Tix可以使用teacup
使用ActiveTCL安装。不幸的是,它目前只适用于32位版本()@DavidW是的,谢谢您的努力。我希望他们(ActiveState)或其他人重新启动并支持这个项目。或者至少我希望ttk
在下一个版本中有更多的小部件。我对这个问题有进一步的思考。我没有/不能尝试,所以如果这是一条死胡同,我道歉。我认为Mac上的Tk已经分为X11和Aqua,大多数人都支持Aqua。Tix看起来从未更新过X11之后的版本,因此可能无法包含在大多数发行版中。如果您准备自己构建它(和Tk),我怀疑X11版本可能仍然可以工作。显然,您需要运行X服务器。查看并--启用aqua
,尝试了解如何做到这一点。Mauro认为当前ActiveState OS X茶壶版本的Tix仅为Intel 32位系统构建,这一点是正确的;它应该是一个通用的32位/64位版本。这似乎是由于ActiveState如何构建它的错误造成的。与其构建自己的64位版本的Tix,另一个可能的选择是在32位模式下运行Python 3.4,假设您没有任何仅64位的依赖项。如果您使用的是python.org 3.4,只需运行python3.4-32
。但是请注意,在当前的OS X Tk中使用Tix可能会出现问题。我试过运行一些演示,但效果不好。另外请注意,您可能需要首先安装或更新Tix扩展。您可以使用ActiveTclteacup
命令执行此操作:sudo teacup update
和sudo teacup install Tix
。