pdb:自动附加到sys.path

时间:2016-02-19 02:32:57

标签: python pdb

在对python应用程序进行模块化之后,我总是不得不将子包的路径添加到sys.path。即我目前使用pdb的工作流程

  1. python [my-script]切换到python -m pdb [my-script]
  2. import sys
  3. sys.path.append([full path to subdirectory where [module-XY] lies])
  4. b [module-XY]:[line]
  5. 您对自动化(2)和(3)的建议是什么?我按以下顺序选择解决方案:

    1. 我可以检查git的东西,因此它可以自动为每个人/在用于开发的每个设备上工作。
    2. 我可以放到.bashrc的环境变量或一些设置代码,而不是围绕pdb做一些包装脚本。
    3. 一些虚拟环境设置。
    4. 目前我正在考虑在工作目录下递归搜索python包并将其添加到脚本中。这个问题是否有一些最佳实践?

2 个答案:

答案 0 :(得分:2)

好吧,显然解决这个问题的方法是使用PYTHONPATH。在您的~/.bashrc或您的virtualenv的bin/activate脚本中,通过修改路径来放置您的模块源目录,如下所示:

export PYTHONPATH="${PYTHONPATH}:[MY-PATH-1]:[...]:[MY-PATH-N]"

之后来源bashrc或停用/激活你的virtualenv。通过运行pdb并使用import sys; sys.path打印所有搜索路径来检查它是否有效。

答案 1 :(得分:0)

另一种方式(取决于用例,可能不太方便):

总是用完整路径指定断点,例如

b foo/bar/bar:39

注意:不需要.py文件扩展名来指定断点。

注意:像b foo.bar.bar:39这样写不会起作用。