gpt4 book ai didi

python shell 卡在退出

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:13 29 4
gpt4 key购买 nike

如果我按特定顺序导入了两个库,Python 不会退出。我正在使用 python 库 scitoolsfenicstools .

在 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 不退出。

最佳答案

使用pdb单步执行每一个操作,查看fenicstools在其__init__.py中卡在了哪一行代码

https://docs.python.org/2/library/pdb.html

例子:

$ pdb test.py
> /home/cleekley/test/test.py(1)<module>()
-> import sys
(Pdb) s
> /home/cleekley/test/test.py(2)<module>()
-> import time
(Pdb) s
> /home/cleekley/test/test.py(4)<module>()
-> while True:
(Pdb) s
> /home/cleekley/test/test.py(5)<module>()
-> time.sleep(1)
(Pdb) s
> /home/cleekley/test/test.py(4)<module>()
-> while True:
(Pdb) quit

关于python shell 卡在退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26283325/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com