首先让我告诉你,我在线程和多处理方面都是新手。
我有一个Python图形程序,一旦你选择一个翻译网站并点击一个按钮,调用一个线程打开一个浏览器并在该给定网站上搜索(我使用的是splinter,它使用了selenium,和位于用户选择的文本文件中的术语的qt(图形部分)。
我正在尝试将网站上每个字词的搜索时间超时30秒,因为有时会出现加载问题或其他问题,如果需要花时间搜索,我希望能够跳过该术语稍后再试。
所以: 我在按钮的事件处理程序上有这个代码:
self.searchThread = PesquisaThread()
self.searchThread.start()
然后在线程的run方法中我有:
glossary.do_search(0, site_to_look_for)
'词汇表'是gui的类。
然后,如果选择了词汇表translib,那么'do_search'会:
search_translib(language_from,language_to)
然后要求执行打开浏览器和点击链接等的功能,如此......
p = multiprocessing.Process(target=search_term_language,args=(browser,'Portuguese', row, column,termo_unicode))
p.start()
p.join(30)
但是当这个特定代码运行时,我得到:
pickle.PicklingError: Can't pickle '_subprocess_handle' object: <_subprocess_handle object at 0x0230DA60>
我很茫然,有谁知道发生了什么。
谢谢 丹尼尔