Я пытаюсь запустить TCL-скрипты из Python. У меня есть сторонний пакет TCL, включенный в сценарий TCL (который я должен использовать), который вызывает вызовы на «консоль». Из-за этого, если я просто запустить следующее:python и TCL: как запускать скрипты, которым нужна консоль
z = x.tk.eval('source C:/somePath/GetStatsFirst2.tcl')
Я получаю следующее сообщение об ошибке:
pydev debugger: starting
WARNING!!! Unable to add paths from Appinfo: Could not find AppInfo registry entry
WARNING!!! Unable to add paths from Appinfo: Could not find AppInfo registry entry
Traceback (most recent call last):
File "C:\Users\lab\Documents\Public\eclipse\plugins\org.python.pydev_2.7.5.2013052819\pysrc\pydevd.py", line 1397, in <module>
debugger.run(setup['file'], None, None)
File "C:\Users\lab\Documents\Public\eclipse\plugins\org.python.pydev_2.7.5.2013052819\pysrc\pydevd.py", line 1090, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "C:\Users\lab\Documents\Public\workspace\Version 1\....\TC1.py", line 55, in <module>
test()
File "C:\Users\lab\Documents\Public\workspace\Version 1\....\TC1.py", line 42, in test
z = x.tk.eval('source C:/Users/lab/Documents/Public/TCL/Scripts/GetStatsFirst2.tcl')
_tkinter.TclError: invalid command name "console"
Это определенно что-то делать с пакетом, я использую, и проблема может быть неизбежным. Поскольку нет открытой консоли TK (потому что я использую класс TK inter и eval
), я чувствую, что есть способ обойти это. Мне кажется, что пакет, который я импортирую, требует наличия консоли TK. При запуске в командной строке или через subprocess.call
все работает, но в этих случаях открывается консоль. Я уверен, что пакет действительно ищет консоль. Есть ли способ создать консоль вместе с объектом Tk?
Команда, которую вы дали, представляет собой команду tcl, но возникает вопрос о том, как использовать tcl из сценария python/tkinter. Ваш ответ не очень помогает. –
@BryanOakley А что такое 'source'? команда python? Оп знает, как вычислять команды Tcl. –
Привет, Йоханнес, похоже, что-то сделал, потому что сейчас у меня другая ошибка. Скрипт, вероятно, получил немного дальше. Думаю, я отвечу на ваш ответ. – user442920