之前我选择的测试库是单元测试.它正在使用我最喜欢的调试器--Pudb.不是Pdb !!!
要将Pudb与unittest 一起使用,我会import pudb;pudb.set_trace()在代码行之间粘贴.然后我执行了python -m unittest my_file_test,其中my_file_test是my_file_test.py文件的模块表示.
简单地使用nosetests my_file_test.py将无法工作 - AttributeError: StringIO instance has no attribute 'fileno'将被抛出.
随着py.test既不作品:
py.test my_file_test.py
也不
python -m pytest my_file_test.py
两个扔 ValueError: redirected Stdin is pseudofile, has no fileno()
有关如何使用任何想法Pudb与py.test
我试图通过pudb调试器调试一些单元测试时遇到一些麻烦.
测试运行良好的python,但我没有运气与他们运行pudb.
我解决了这个问题,得到以下示例代码:
class Math:
def pow(self, x, y):
return x ** y
import unittest
class MathTest(unittest.TestCase):
def testPow23(self):
self.assertEquals(8, Math().pow(2, 3))
def testPow24(self):
self.assertEquals(16, Math().pow(2, 4))
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
测试运行良好:
$ python amodule.py
.
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
Run Code Online (Sandbox Code Playgroud)
但如果通过pudb运行,它会给我输出:
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Run Code Online (Sandbox Code Playgroud)
我试着使用运行pudb amodule.py,也有python -m pudb.run amodule.py,但它没有什么区别-没有测试是在一个或另一种方式运行.
我应该做一些与使用pudb调试单元测试不同的东西吗?
有没有办法在pudb中调整命令行/解释器窗口/窗格的大小,就像可以调整侧窗格的大小一样?
我在Linux上并期望它像pdb,gdb一样工作,即按下enter以重复上一个命令.我知道调试器有一个Variables监视窗口.
我一直在使用 pudb 来调试 python 代码,它非常直接进入终端。但我一点也不喜欢它的颜色。
如下图所示。
我在文件夹里面找到了
.local/lib/python3.8/site-packages/pudb
Run Code Online (Sandbox Code Playgroud)
文件名theme.py但即使尝试更改它也没有任何反应

我更喜欢pudb进行python调试。我正在构建在docker容器中运行的python应用程序。
有谁知道如何使pudb在docker容器中可用吗?
谢谢
我在那里尝试过的每个调试器都需要一个源文件来调试。然而Python并不总是这样工作。
我有一个模块,它是一个文件夹,里面有__init__.py和__main__.py文件等,我通常这样执行:
$ cd /parent/folder
$ python3 -m module_folder --help
Run Code Online (Sandbox Code Playgroud)
如果我不使用-m,相对导入就会失败。如果我只是将文件夹传递给pudb,pdb和其他人,调试器将失败:
$ cd /parent/folder
$ python3 -m pdb module_folder
Traceback (most recent call last):
File "/usr/lib64/python3.3/pdb.py", line 1658, in main
pdb._runscript(mainpyfile)
File "/usr/lib64/python3.3/pdb.py", line 1536, in _runscript
with open(filename, "rb") as fp:
IsADirectoryError: [Errno 21] Is a directory: 'module_folder'
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr/lib64/python3.3/pdb.py(1536)_runscript()
-> with open(filename, "rb") as …Run Code Online (Sandbox Code Playgroud) 我已安装PuDB在python 3.4.2其上virtualenv并正在运行windows 7 sp1.
我首先激活virtualenv
workon env01
Run Code Online (Sandbox Code Playgroud)
然后进入python控制台
python
Run Code Online (Sandbox Code Playgroud)
现在我需要测试PuDB如下
>>> import pudb
>>> pudb.set_trace()
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
> Traceback (most recent call last): File "<stdin>", line 1, in
> <module> File
> "C:\Users\L3\Envs\env01\lib\site-packages\pudb\__init__.py", line 150,
> in set_trace
> dbg = _get_debugger() File "C:\Users\L3\Envs\env01\lib\site-packages\pudb\__init__.py", line 35,
> in _get_debugger
> dbg = Debugger(**kwargs) File "C:\Users\L3\Envs\env01\lib\site-packages\pudb\debugger.py", line 150,
> in __init__
>
> self.ui = DebuggerUI(self, stdin=stdin, stdout=stdout, term_size=term_size) File
> "C:\Users\L3\Envs\env01\lib\site-packages\pudb\debugger.py", line
> …Run Code Online (Sandbox Code Playgroud) 我正在调试一个python脚本,我想看一个变量,并在其值发生变化时得到通知.
有没有办法做到这一点pudb?
我怎么能用python调试器检查复杂的变量(list,dict,object)值,我是python的新手,我试过pudb,看起来当变量类型是复杂类型时,调试器只显示变量的类型,而不是值.
用pudb检查价值是否可能?或者是否有任何其他python调试器可以做到这一点?