我正在切换工具链,从基于eclipse的python ide到基于vim的等价物。
我目前正在试验pudb。
我正试图通过谷歌提供的一些代码作为tensorflow的例子。它运行在一个venv,在python3.5上。没有一个调试器在导入venv特定库时出现问题,所以我相信它们都在预期的venv中运行。
pdb和ipdb都可以完整地运行/逐步完成代码 - 这很好。
当我尝试运行pudb时,我收到以下错误:
Traceback (most recent call last):
File "~/interpreters/p35/lib/python3.5/site-packages/tensorflow/python/platform/app.py",
line 44, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough)) TypeError: main() takes 0 positional arguments but 1 was given
主要定义如下:
def main(argv=None): # pylint: disable=unused-argument
cifar10.maybe_download_and_extract()
if tf.gfile.Exists(FLAGS.train_dir):
tf.gfile.DeleteRecursively(FLAGS.train_dir)
tf.gfile.MakeDirs(FLAGS.train_dir)
train()
if __name__ == '__main__': tf.app.run()
并且tf.app.run()看起来像这样:
def run(main=None, argv=None):
#Runs the program with an optional 'main' function and 'argv' list.
f = flags.FLAGS
# Extract the args from the optional `argv` list.
args = argv[1:] if argv else None
# Parse the known flags from that list, or from the command line otherwise.
# pylint: disable=protected-access
flags_passthrough = f._parse_flags(args=args)
# pylint: enable=protected-access
main = main or _sys.modules['__main__'].main
# Call the main function, passing through any arguments to the final program.
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
我真的希望得到pudb处理这段代码,因为我非常喜欢它的界面。
我在这里坐立不安,而且我的选择很快。任何人对pdb,ipdb和pudb之间的操作方面有任何想法吗?
谢谢,
NT