【发布时间】:2014-10-09 16:20:48
【问题描述】:
如果我按特定顺序导入了两个库,Python 不会退出。 我正在使用 Python 库 scitools 和 fenicstools。
在 python shell 中,以下将起作用:
import fenicstools
import scitools
exit()
这不会退出而是挂起(反转导入):
import scitools # ok
import fenicstools # ok
exit() # gets me stuck, I can still exit with Ctrl+C
我可以在两台 Ubuntu 14.04 机器上重现这一点,但现在完全不知所措。我什至如何开始调试这样的问题?
背景:我正在使用sumatra 来跟踪我的数值模拟。它收集并记录我的项目依赖项的版本。因此,我无法控制它尝试这样做的顺序。结果:卡住了。
编辑:
按照@ErlVolton 的建议,我尝试了 pdb。将两个导入按有问题的顺序放入一个名为 test.py 的文件中。
$ pdb test.py
> /home/gallomania/test.py(1)<module>()
-> import scitools
(Pdb) n
> /home/gallomania/test.py(2)<module>()
-> import fenicstools
(Pdb) n
--Return--
> /home/gallomania/test.py(2)<module>()->None
-> import fenicstools
(Pdb) exit
...这使得 pdb 不会退出。
【问题讨论】:
-
只使用第一个示例并继续吗?
-
@Takendarkk 想要了解为什么会发生某些事情并没有错。
-
我正在使用sumatra 来跟踪我的数值模拟。它收集并记录我的项目依赖项的版本。因此,我无法控制它尝试这样做的顺序。结果:卡住了。
-
@gallomania 我认为您应该将其添加到您的问题中。
-
@Takendarkk 已经这样做了,谢谢你的建议。