相关疑难解决方法(0)

如何逐步完成Python代码以帮助调试问题?

在Java/C#中,您可以轻松地逐步执行代码以跟踪可能出错的内容,而IDE使此过程非常用户友好.

你能以类似的方式追踪python代码吗?

python debugging

163
推荐指数
9
解决办法
21万
查看次数

如何在uWSGI下调试python应用程序?

当我尝试在uWSGI下使用python pdb调试器时,执行不会在断点上停止,它只返回trackback.

这是代码:

def application(env, start_response):
    import pdb; pdb.set_trace()
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"
Run Code Online (Sandbox Code Playgroud)

这是我运行它的方式:

uwsgi --http 127.0.0.1:7777  --wsgi-file uwsgi_test.py
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

/home/andrey/Development/ttt/uwsgi_test.py(3)application()
-> start_response('200 OK', [('Content-Type','text/html')])
(Pdb) 
Traceback (most recent call last):
  File "uwsgi_test.py", line 3, in application
    start_response('200 OK', [('Content-Type','text/html')])
  File "uwsgi_test.py", line 3, in application
    start_response('200 OK', [('Content-Type','text/html')])
  File "/usr/lib/python2.7/bdb.py", line 48, in trace_dispatch
    return self.dispatch_line(frame)
  File "/usr/lib/python2.7/bdb.py", line 67, in dispatch_line
    if self.quitting: raise BdbQuit
bdb.BdbQuit
[pid: 11421|app: 0|req: 1/1] 127.0.0.1 () {32 vars in 366 …
Run Code Online (Sandbox Code Playgroud)

python uwsgi

34
推荐指数
2
解决办法
2万
查看次数

我可以在正在运行的Python程序中放置一个断点,该程序可以放到交互式终端吗?

我不确定我问的是否可能,但是因为python可能是一个解释器.我正在尝试在开源项目中进行更改,但因为python中没有类型,所以很难知道变量作为数据和它们的作用.您不能只查找var类型的文档,因为您无法确定它是什么类型.我想放到终端,这样我就可以通过输入help(var)或print(var)来快速检查变量的类型和它们的作用.我可以通过更改代码然后每次重新运行程序来执行此操作,但这会慢得多.

假设我有一个程序:

def foo():
    a = 5
    my_debug_shell()
    print a

foo()
Run Code Online (Sandbox Code Playgroud)

my_debug_shell是我要问的函数.它会让我进入python解释器的'>>> shell,在那里我可以输入help(a),它会告诉我a是一个整数.然后我输入'a = 7'和一些'continue'命令,程序继续打印7而不是5,因为我改变了它.

python

26
推荐指数
4
解决办法
3万
查看次数

在Notepad ++中调试Python代码

我使用Notepad ++编写和运行Python脚本.除了调试之外,它是一个很棒的文本编辑器.有没有办法在Visual Studio中逐步执行代码,使用断点,在Notepad ++中查看变量值等?

python debugging notepad++

13
推荐指数
3
解决办法
2万
查看次数

如何在库模块(pdb)中设置断点

我正在调试一个sys.path看起来像的python脚本

sys.path = ['','home/my_library', ..]
Run Code Online (Sandbox Code Playgroud)

my_library在使用pdb时在模块中设置断点时遇到麻烦.该脚本使用以下命令导入库:

import my_library as foo
Run Code Online (Sandbox Code Playgroud)

反过来,my_library通过以下方式使其模块可用:

from my_module import bar
Run Code Online (Sandbox Code Playgroud)

如何在我的脚本上运行pdb时解决my_module的代码?

PS:我尝试了以下但没有成功:

b my_module:1
b my_library.my_module:1
b my_library.bar:1
b foo.my_module:1
b foo.bar:1
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pdb

8
推荐指数
1
解决办法
4847
查看次数

标签 统计

python ×5

debugging ×2

notepad++ ×1

pdb ×1

python-2.7 ×1

uwsgi ×1