【问题标题】:Multithreading frozen in Python Spyder but not command prompt Windows 10多线程冻结在 Python Spyder 但不是命令提示符 Windows 10
【发布时间】:2016-12-17 11:56:42
【问题描述】:

我在 Spyder 中运行一个脚本,该脚本利用了多线程库,IPython 控制台冻结并显示以下输出。但是,通过“python quickstart11.py”使用 Windows 命令提示符运行脚本可以正常工作并生成正确的输出。

    runfile('C:/Python35/User/backtrader-master/docs/quickstart/quickstart11.py', wdir='C:/Python35/User/backtrader-master/docs/quickstart')
Exception in thread Thread-8:
Traceback (most recent call last):
  File "C:\Anaconda3\lib\threading.py", line 914, in _bootstrap_inner
    self.run()
  File "C:\Anaconda3\lib\threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Anaconda3\lib\multiprocessing\pool.py", line 429, in _handle_results
    task = get()
  File "C:\Anaconda3\lib\multiprocessing\connection.py", line 251, in recv
    return ForkingPickler.loads(buf.getbuffer())
AttributeError: Can't get attribute 'TestStrategy' on <module '__main__' (<_frozen_importlib_external.SourceFileLoader object at 0x000002727C461438>)>

我已尝试根据Python doc 添加 freeze_support(),这应该可以缓解问题,但它仍然冻结。怎么回事?

Windows 10 64 位、Anaconda Python 35 64 位安装程序。

【问题讨论】:

    标签: python windows multithreading spyder


    【解决方案1】:

    问题出在 Spyder 上。内核在解释模式下运行,并且“freeze_support”的添加不会发生在其他事情之前,即使这是本意,因为内核已经在运行。

    请看这里:https://github.com/mementum/backtrader/issues/118

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-26
      • 2018-11-05
      • 1970-01-01
      • 2018-01-30
      • 2020-06-13
      • 2018-12-21
      • 2021-12-04
      • 1970-01-01
      相关资源
      最近更新 更多