Python中的Ubuntu上的Tcl_AsyncDelete错误

时间:2017-09-26 15:57:25

标签: python python-2.7 tcl tk python-multithreading

我的Python应用程序在Windows和OS X / macOS上成功运行...在Ubuntu上,但是,我收到了一个Tcl_AsyncDelete错误!

我知道使用Tk在Python中如何使用线程,并且只能从主线程访问Tk,但是当我的逻辑线程尝试使用urllib.urlopen打开URL时,错误会突然出现并且Python会发生混乱。删除urlopen调用以测试它后,程序不会崩溃。发生在Python 2和Python 3上。

以下是我项目的代码:

https://pastebin.com/Si6gNfDZ

我尽我所能,将日志级别设置为DEBUG(在我的代码中),使用pdb调试应用程序......没有有用的信息。

从单独的线程访问Tk或在线程内运行的问题--Tk在主线程内运行,并且与逻辑线程的所有通信都通过共享队列进行。

或许我错过了什么?提前谢谢!

1 个答案:

答案 0 :(得分:0)

问题是Rails.application.config.assets.precompile += %w( LogIn.scss ) ActionView::Template::Error (undefined method `[]' for nil:NilClass): 而非get_IP_data()中运行,因为该函数是在Thread-1内调用的,即使它位于线程本身之外(只是Python的工作方式)......

解决方案是在MainThread中简单地拨打Thread-1。但令我困惑的是,get_IP_data()干扰MainThread的原因是什么?但除此之外,问题已经解决了。