Запуск tkinter вместе с другой программой на базе TCL - PullRequest
0 голосов
/ 05 апреля 2019

Я использую бесплатный дистрибутив Anaconda 1.9.6 с python 3.7.1 для запуска интерфейса в tkinter, для которого мне нужно программное обеспечение для научного моделирования под названием SIMPSON, написанное на TCL.

Программное обеспечение, о котором идет речь: https://inano.au.dk/about/research-centers/nmr/software/simpson/ (Это программное обеспечение устанавливается без вредоносных программ или каких-либо неудобств, кроме тех, которые описаны здесь, если кто-то хочет проверить)

Проблема в том, что даже выполнение простого кода:

import tkinter as tk

main_window = tk.Tk()
main_window.mainloop()

… возвращает сообщение об ошибке:

Файл "", строка 1, в runfile ('R: /tests/MWE/tkinter_test.py', wdir = 'R: / tests / MWE')

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайт-пакеты \ spyder_kernels \ подгоняет \ spydercustomize.py", строка 704, в runfile execfile (имя файла, пространство имен)

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайт-пакеты \ spyder_kernels \ подгоняет \ spydercustomize.py", строка 108, в execfile exec (compile (f.read (), filename, 'exec'), пространство имен)

Файл "R: /tests/MWE/tkinter_test.py", строка 10, в main_window = tk.Tk ()

Файл "C: \ ProgramData \ Anaconda3 \ lib \ tkinter__init __. Py", строка 2023, в init self.tk = _tkinter.create (screenName, baseName, className, интерактивный, wantobjects, useTk, синхронизация, использование)

TclError: Не удается найти пригодный для использования файл init.tcl в следующих каталогах: {C: \ Program Files (x86) \ SIMPSON \ tcl8.6} C: /ProgramData/Anaconda3/lib/tcl8.6 C: /ProgramData/lib/tcl8.6 C: /lib/tcl8.6 C: / ProgramData / библиотека C: / библиотека C: /tcl8.6.8/library C: /tcl8.6.8/library

C: / Program Files (x86) /SIMPSON/tcl8.6/init.tcl: конфликт версий для пакет "Tcl": есть 8.6.8, нужно точно конфликт версии 8.6.2 для пакет "Tcl": есть 8.6.8, нужно ровно 8.6.2 при выполнении "package require -exact Tcl 8.6.2" (файл "C: / Program Files (x86) /SIMPSON/tcl8.6/init.tcl" строка 19) вызывается из "source {C: / Program Files (x86) /SIMPSON/tcl8.6/init.tcl}" (линия 1 "верхнего уровня") вызывается из "uplevel # 0 [список источников $ tclfile]"

Это, вероятно, означает, что Tcl не был установлен правильно.

SIMPSON работает нормально. Проблема исчезает только после удаления SIMPSON и переустановки Anaconda, но должен быть более простой способ…

1 Ответ

0 голосов
/ 05 апреля 2019

Из сообщения об ошибке я думаю, что Tcl в комплекте с SIMPSON создает проблему с анакондой Tcl, так как обе они имеют разные версии. Tcl на SIMPSON - 8.6.2, а Tcl на вашей анаконде - 8.6.8, что соответствует Tkinter версии 8.6.8. Это означает, что Tkinter не может работать с Tcl> = 8.6.8.

Обновление Tcl на SIMPSON должно исправить ошибку. Вы также можете попробовать обновить Anaconda Tcl, возможно, это решит проблему.

Обновление Tcl / Tk на Anaconda из командной строки ( Подробнее ).

Команда:

conda install -c conda-forge tk 
conda install -c conda-forge/label/gcc7 tk 
conda install -c conda-forge/label/broken tk 
conda install -c conda-forge/label/cf201901 tk
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...