标签: pudb

使用Python pudb调试器和pytest

之前我选择的测试库是单元测试.它正在使用我最喜欢的调试器--Pudb.不是Pdb !!!

要将Pudbunittest 一起使用,我会import pudb;pudb.set_trace()在代码行之间粘贴.然后我执行了python -m unittest my_file_test,其中my_file_testmy_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()

有关如何使用任何想法Pudbpy.test

python pytest pudb

16
推荐指数
2
解决办法
2739
查看次数

如何用pudb调试器调试unittes?

我试图通过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调试单元测试不同的东西吗?

python pudb python-unittest

11
推荐指数
1
解决办法
1642
查看次数

如何在pudb中使命令行/解释器窗格/窗口更大?

有没有办法在pudb中调整命令行/解释器窗口/窗格的大小,就像可以调整侧窗格的大小一样?

python pudb

10
推荐指数
1
解决办法
878
查看次数

如何在python调试器PuDB中重复命令行上的最后一个命令

我在Linux上并期望它像pdb,gdb一样工作,即按下enter以重复上一个命令.我知道调试器有一个Variables监视窗口.

python pudb

7
推荐指数
1
解决办法
1066
查看次数

如何选择或更改 pudb(Python 调试器)上的主题?

我一直在使用 pudb 来调试 python 代码,它非常直接进入终端。但我一点也不喜欢它的颜色。

如下图所示。

我在文件夹里面找到了

.local/lib/python3.8/site-packages/pudb 
Run Code Online (Sandbox Code Playgroud)

文件名theme.py但即使尝试更改它也没有任何反应

经典主题

python debugging pudb

7
推荐指数
1
解决办法
1774
查看次数

在docker容器中运行pudb

我更喜欢pudb进行python调试。我正在构建在docker容器中运行的python应用程序。

有谁知道如何使pudb在docker容器中可用吗?

谢谢

python pudb docker docker-compose

6
推荐指数
1
解决办法
521
查看次数

如何调试需要使用-m执行的python模块?

我在那里尝试过的每个调试器都需要一个源文件来调试。然而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)

python debugging command-line relative-import pudb

5
推荐指数
1
解决办法
3375
查看次数

NameError:未定义名称'fcntl'

我已安装PuDBpython 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 windows python-3.x pudb

5
推荐指数
0
解决办法
2413
查看次数

如何在pudb中观察变量?

我正在调试一个python脚本,我想看一个变量,并在其值发生变化时得到通知.

有没有办法做到这一点pudb

python pudb

5
推荐指数
1
解决办法
975
查看次数

检查python调试器中的复杂变量,如pudb

我怎么能用python调试器检查复杂的变量(list,dict,object)值,我是python的新手,我试过pudb,看起来当变量类型是复杂类型时,调试器只显示变量的类型,而不是值.

用pudb检查价值是否可能?或者是否有任何其他python调试器可以做到这一点?

python debugging pudb

4
推荐指数
1
解决办法
1991
查看次数