python - 如何使用 PyCharm 从命令行调试 python 脚本?

标签 python debugging terminal pycharm

我想调试一个接受多个命令行参数的 Python 脚本,例如

myscript.py --input1 ./dir/file1.txt --input2 ./dir/file2.txt

Pycharm 中。我知道,我可以使用 Run/Debug Configuration 添加命令行参数。但是,我觉得这样比较麻烦,因为我每次要修改参数都必须打开菜单。此外,将文件指定为参数时没有文件名补全。

我更喜欢从我最喜欢的 shell 调用 myscript.py,我在其中有文件名完成等,但仍然在该脚本上使用 PyCharm 调试器。

最佳答案

简答:Tools> Attach to Process...

长答案:

  1. 在您的代码的最前面添加一行

    input("press Enter to continue")
    
  2. 在 shell 中启动您的代码

    myscript.py --input1 ./dir/file1.txt --input2 ./dir/file2.txt
    
  3. 打开 Pycharm 并使用它打开您的 myscript.py。在任何你想调试的地方设置断点。选择 Tools> Attach to Process... 并选择 myscript.py 正在运行的进程。

  4. 回到 myscript.py 的 shell 并按下 Enter

你可能会遇到的麻烦:ptrace 没有做某事的权限

解决方案:

sudo su
echo 0 > /proc/sys/kernel/yama/ptrace_scope

或者你可以直接设置0

/etc/sysctl.d/10-ptrace.conf

关于python - 如何使用 PyCharm 从命令行调试 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34677857/

相关文章:

python - tuple() 不能完全处理 python 中的文件

python - Tkinter - 循环更新 ListBox

python - 使 Emacs 在 Python 交互模式下使用 UTF-8

python - 无法在 Linux 上打开 Pyspark Shell

python - 使用 DictReader 从 CSV 文件读取到列表中

Python 美丽汤 : finding an element after a specific string

sql-server - 如何调试在任何测试环境中似乎都无法重现的 SQL Server 数据问题?

debugging - 在 Visual Studio 2005 中检查 std::stringstream 的值

debugging - Elisp:符号作为变量的值在 let* 和 (lambda) 中是无效的

heroku 永久删除终端账户