如何在 python *.py 之前使用命令在 pycharm 中调试?

Posted

技术标签:

【中文标题】如何在 python *.py 之前使用命令在 pycharm 中调试?【英文标题】:how to debug in pycharm with command before python *.py? 【发布时间】:2021-12-19 04:54:32 【问题描述】:

我正在尝试调试公司服务器中的代码,但是,我需要通过使用特定命令来获得许可(简而言之,我将其称为 p)。如何在 pycharm 中使用启动命令进行调试

p python main.py

我尝试编辑配置,但参数和解释器选项都没有按预期工作。有没有什么设置可以修改启动python的命令?

使用pdb 显示变量值的能力不能满足我的要求。

【问题讨论】:

不确定这是否可行,但您可以尝试将 p python 制作为批处理文件/shell 脚本并将该脚本添加到 PyCharm 作为新的 Python 解释器。 我试过了,但我只是不知道如何在使用调试模式时运行批处理文件/shell 脚本。但我认为这是个好主意,我会再试一次。 我的意思是使用批处理文件作为项目的 python 解释器,使用 Add Python Intepreter 菜单。 哦,我明白你的意思了!多谢。我现在正在尝试。 无法用批处理文件作为python解释器连接pycharm调试器,可惜了。 【参考方案1】:

这在 macOS 11 上对我有用。由于我不知道您问题中的 p 是什么,因此我使用了 time 命令进行测试:

创建了一个名为 /var/tmp/python 的 shell 脚本并使其成为可执行文件 (chmod +x /var/tmp/python):

#!/bin/sh
time /usr/bin/python3 "$@"

"$@" 用于将传递给/var/tmp/python 的所有命令行参数传递给实际的/usr/bin/python3

然后我added a new System Interpreter in PyCharm 并选择/var/tmp/python 作为可执行文件。

当我调试“Hello world”应用程序时,输出如下:

/var/tmp/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 53332 --file "/var/tmp/hello_world.py"
Connected to pydev debugger (build 212.5457.59)
Hello, world!

real    0m3.091s
user    0m0.292s
sys 0m0.078s

Process finished with exit code 0

如您所见,除了执行/调试应用程序之外,它还打印了经过的总时间。

【讨论】:

我想在远程服务器上运行一个 .py 代码,所以我不能选择“系统解释器”,因为它似乎只选择了本地解释器。当我添加一个 ssh 解释器时,stderr 是“Could not get a remote socket from output” 哦!我想弄清楚为什么它不能与 ssh 配置一起使用。我重新配置了 ssh 解释器。它现在工作了,非常感谢!希望有一天能和你一样精通python。

以上是关于如何在 python *.py 之前使用命令在 pycharm 中调试?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中记住其他程序实例变量[关闭]

python中执行另一个py文件

如何将命令提示符中的 Python 编码保存为文件?

如何根据命令行输入包含py文件?

.py文件运行没反应(新手)

如何在命令行里运行python脚本