pdb:自动附加到 sys.path

pdb: Automatically append to sys.path

在将 python 应用程序模块化后,我经常不得不将子包的路径添加到 sys.path,这让我很恼火。 IE。我使用 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]

您对 (2) 和 (3) 的自动化有何建议?我更喜欢按以下顺序的解决方案:

  1. 我可以检查的东西 git,因此它会自动为每个人/在用于开发的每台设备上工作。
  2. 我可以将环境变量或一些设置代码放入 .bashrc,而不是围绕 pdb 做一些包装脚本。
  3. 一些虚拟环境设置。

目前我正在考虑在工作目录下递归搜索 python 包并将它们添加到脚本中。关于这个问题有一些最佳实践吗?

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

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

之后获取您的 bashrc 或 deactivate/activate 您的 virtualenv。通过 运行 pdb 检查它是否工作,并使用 import sys; sys.path 打印所有搜索路径。

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

始终使用完整路径指定断点,例如

b foo/bar/bar:39

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

注意:像 b foo.bar.bar:39 这样写 不会 有效。