[英]_tkinter TclError: can't find package 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
這就是我在互聯網上找到的。 我不知道這是否是正確的方法。 但是代碼仍然沒有運行它崩潰了
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 上,當我看到這個錯誤時,我安裝了 tix-dev 包,一切正常。 我相信它在 OSX 上同樣簡單,但我對此一無所知。 另外,請確保您正在運行 Python 3.3,因為這是我正在開發/測試/使用 GUI 的唯一版本。
我安裝了tix-dev
( apt-get install tix-dev
) 並使用 Python 2.7.3 和 Python 3.2.3 進行了測試並且可以正常工作。
測試導入tkinter
在Python 3.3.3和Tix
在OSX 10.9.5在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()
>>>
我對 Python 3.8 和 pyinstaller 3.0 有同樣的問題
通過將位於 YOUR_PYTHON_INSTALL_PATH\\Python38-32\\Scripts\\dist 的文件夾 tix8.4.3 復制到dist文件夾來解決。
你應該使用語法導入庫from tkinter.tix import Tk, ScrolledText
而不是from tkinter import scrolledtext
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.