pdb:自动附加到 sys.path
pdb: Automatically append to sys.path
在将 python 应用程序模块化后,我经常不得不将子包的路径添加到 sys.path
,这让我很恼火。 IE。我使用 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) 的自动化有何建议?我更喜欢按以下顺序的解决方案:
- 我可以检查的东西 git,因此它会自动为每个人/在用于开发的每台设备上工作。
- 我可以将环境变量或一些设置代码放入
.bashrc
,而不是围绕 pdb 做一些包装脚本。
- 一些虚拟环境设置。
目前我正在考虑在工作目录下递归搜索 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
这样写 不会 有效。
在将 python 应用程序模块化后,我经常不得不将子包的路径添加到 sys.path
,这让我很恼火。 IE。我使用 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) 的自动化有何建议?我更喜欢按以下顺序的解决方案:
- 我可以检查的东西 git,因此它会自动为每个人/在用于开发的每台设备上工作。
- 我可以将环境变量或一些设置代码放入
.bashrc
,而不是围绕 pdb 做一些包装脚本。 - 一些虚拟环境设置。
目前我正在考虑在工作目录下递归搜索 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
这样写 不会 有效。