Python _tkinter错误:can';找不到包裹提示

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 这是我在网上找到的。我不知道这是不是一个正确的方法。但

一位朋友给我发送了一些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

完整的原始代码:

我在这里测试了这个问题(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扩展。您可以使用ActiveTcl
teacup
命令执行此操作:
sudo teacup update
sudo teacup install Tix