簡體   English   中英

_tkinter TclError: 找不到包 Tix

[英]_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 進行了測試並且可以正常工作。

測試導入tkinterPython 3.3.3TixOSX 10.9.52.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM