_tkinter TclError: не удается найти пакет 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
3 ответа
Я протестировал эту проблему здесь (Ubuntu 12.04.5) и получил ту же ошибку. При просмотре веб-страниц возникла дискуссия об ошибке этой функции. Вот часть транскрипции, где я нашел решение:
Я нахожусь на Ubuntu 13.04, и когда я вижу эту ошибку, я устанавливаю пакет tix-dev, и все просто работает. Я бы поверил, что это так же просто на OSX, но я понятия не имею об этом. Кроме того, убедитесь, что вы используете Python 3.3, поскольку это единственная версия, с которой я разрабатываю / тестирую / использую графический интерфейс.
Я установил tix-dev
(apt-get install tix-dev
) и протестировал с Python 2.7.3 и Python 3.2.3 и работает.
Импорт тестов tkinter
в Python 3.3.3 и Tix
в 2.7.5 в OSX 10.9.5 были те же проблемы с Ubuntu при использовании ActiveTcl 8.6.3.1.
Проблема с Tcl lib Tix. Решение состоит в том, чтобы перекомпилировать 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
Решено путем копирования папки tix8.4.3, расположенной в YOUR_PYTHON_INSTALL_PATH\Python38-32\Scripts\dist, в папку dist.
Вы должны импортировать библиотеку, используя синтаксис
from tkinter.tix import Tk, ScrolledText
вместо
from tkinter import scrolledtext
.