Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pdb.set_trace()在终端中被忽略,但在IPython中工作?_Python_Pdb - Fatal编程技术网

Python pdb.set_trace()在终端中被忽略,但在IPython中工作?

Python pdb.set_trace()在终端中被忽略,但在IPython中工作?,python,pdb,Python,Pdb,我正在调试一个程序,该程序返回父数组中最长的升序子数组。下面是名为longest.py的程序文件 问题是当我在命令行中运行python longest.py时,没有显示来自pdb的提示。但是,我排除了一些提示,因为我在一些地方使用了pdb.set\u trace()语句 import pdb def longest(array): pdb.set_trace() size = len(array) if size == 1: pdb.set_trace(

我正在调试一个程序,该程序返回父数组中最长的升序子数组。下面是名为longest.py的程序文件

问题是当我在命令行中运行
python longest.py
时,没有显示来自
pdb
的提示。但是,我排除了一些提示,因为我在一些地方使用了
pdb.set\u trace()
语句

import pdb

def longest(array):
    pdb.set_trace()
    size = len(array)
    if size == 1:
        pdb.set_trace()
        return 1
    else:
        pdb.set_trace()
        print('Currently looking at subarray of length: ')
        print(size)
        if array[-1] > array[-2]: 
            pdb.set_trace()
            return longest(array[0:size-1]) + 1   # increasing the number by 1
        else:
            return longest(array[0:size-1])

def main():
    a = [7, 2, 3, 1, 5, 8, 9, 6]
    longest(a)

if __name__  == 'main':
    main()
另一方面,下面的程序,放入Jupyter笔记本单元并运行,确实会给出所需的pdb提示

a = [7, 2, 3, 1, 5, 8, 9, 6]

import pdb

# recursive version
def longest(array):
    size = len(array)
    pdb.set_trace()
    if size == 1:
        pdb.set_trace()
        return 1
    else:
        pdb.set_trace()
        print('Currently looking at subarray of length: ')
        print(size)
        if array[-1] > array[-2]: 
            return longest(array[0:size-1]) + 1   # increasing the number by 1
        else:
            return longest(array[0:size-1])

longest(a)
我的问题是: 1) 为什么在第一个场景中pdb.set_trace()似乎被忽略,以及 2) 为什么pdb.set_trace()在第二种情况下工作

非常感谢你的帮助

20分钟后更新

我将第二个程序粘贴到python文件longest2.py中,并从命令行运行它。pdb在那里工作得很好


所以我猜第一个文件的问题不是pdb而是我的“main”函数?仍然没有弄明白…

简单的输入错误:您缺少
\uuuuu main\uuuu
方法的“dunder”语法。将
if\uuu name\uuu=='main':
更改为
if\uu name\uuu==''\uu main':
,并且它应该work@davedwards谢谢它正在工作。我意识到我根本不懂
\uuuuu main\uuuu
,但知道这一点很好!