【问题标题】:Python PDB Exits Immediately (stdin)Python PDB 立即退出 (stdin)
【发布时间】:2012-12-05 03:15:46
【问题描述】:

我目前正在为班级编写 AI 作业,每次我尝试调试(使用 ipdb 或 pdb)时,pdb 都会立即关闭。该程序将地图作为输入,现在我只是将文本文件输入并从标准输入中获取行。

python value_iteration.py < l_track.txt

这工作正常,但我认为它导致pdb.set_trace() 关闭,有没有办法明确确保标准输入被释放或什么?

当前地图抓取代码段:

def map_input():
...
control_line = sys.stdin.readline().rstrip('\n')
height, width = control_line.split(",")
height = int(height)
width = int(width)

print "Map:"
while row < height:
    for line in sys.stdin:
        create MDP from states
...
return mdp

然后:

def value_iteration(mdp, epsilon):
....
for state in mdp.states.keys():
     print mdp.actions[state]
     ipdborpdb.set_trace()
     utils_prime[state] = R(state) + gamma * max([
        sum([
           p * mdp.utilities[ns] for (p, ns) in T(state, a)
        ]) for a in mdp.actions[state]
     ])
     if abs(utils_prime[state] - mdp.utilities[state]) > delta:
        delta = abs(utils_prime[state] - mdp.utilities[state])
...
return mdp with utilities

【问题讨论】:

  • 至少告诉我们“pdb.set_trace()”的位置在哪里
  • 这是 pdb 问题,尝试阅读:stackoverflow.com/questions/9178751/…
  • 是的,我看到了这个问题,问了我自己的问题,因为那个问题没有修复或答案。
  • 我认为答案就在那个问题之内:1,更改为其他调试工具; 2、将pdb的io分离到另一个fifo
  • 或者我认为最好的方法是直接从文件中读取数据,而不是通过操作系统的管道

标签: python pdb


【解决方案1】:

我一直不知道如何解决这个问题,所以我改用了文件名输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2017-04-12
    • 2012-07-22
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多