在对python应用程序进行模块化之后,我总是不得不将子包的路径添加到sys.path
。即我目前使用pdb
的工作流程
python [my-script]
切换到python -m pdb [my-script]
。import sys
sys.path.append([full path to subdirectory where [module-XY] lies])
b [module-XY]:[line]
您对自动化(2)和(3)的建议是什么?我按以下顺序选择解决方案:
.bashrc
的环境变量或一些设置代码,而不是围绕pdb做一些包装脚本。目前我正在考虑在工作目录下递归搜索python包并将其添加到脚本中。这个问题是否有一些最佳实践?
答案 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
这样写不会起作用。