【问题标题】:Setting startup script in PyCharm debugger console在 PyCharm 调试器控制台中设置启动脚本
【发布时间】:2020-03-26 21:04:30
【问题描述】:

在 PyCharm 中,可以设置在打开新控制台时运行的脚本(通过设置 -> '构建、执行、部署' -> 控制台 -> Python 控制台 -> 启动脚本)。

有没有办法将启动脚本类似地应用到调试器控制台?每次运行代码时,我都会一遍又一遍地导入相同的包。

【问题讨论】:

    标签: python pycharm


    【解决方案1】:

    当您在 PyCharm 中运行 Python Console 时,它会在 <PYCHARM_PATH>/plugins/python/helpers/pydev/pydevconsole.py 处执行自定义 PyCharm 脚本。

    另一方面,当您在调试时运行PyCharm Debug Console 时,它会在<PYCHARM_PATH>/Plugins/python/helpers/pydev/pydevd.py 处执行自定义PyCharm 脚本,并将命令行参数--file 设置为您正在调试的脚本。

    您可以根据需要修改pydevd.py 文件 (Apache 2 license),但更简单的方法是创建启动脚本,在其中导入您需要的模块、函数等并导入 ALLPyCharm 调试控制台 中。这会将您的所有导入减少到一个。

    演练:

    让我们创建 2 个文件:

    • main.py - 我们将调试的主脚本
    • startup.py - 模块、函数或其他我们想要导入的东西。

    main.py内容:

    sentence = 'Hello Debugger'
    
    
    def replace_spaces_with_hyphens(s):
        return s.replace(' ', '-')
    
    
    replace_spaces_with_hyphens(sentence) # <- PLACE BREAKPOINT!
    
    

    当断点被命中时,这就是我们在范围内的内容:

    如果您总是发现自己导入了一些模块并创建了一些函数,您可以在 startup.py 脚本中定义所有内容并将所有内容导入为 from startup import *

    startup.py:

    # Example modules you always find yourself importing.
    import random
    import time
    
    # Some function you always create because you need it.
    def my_imported_function():
        print("Imported !")
    
    

    在 Python 调试器控制台中,使用上面提到的 from startup import *,您会看到范围内的所有模块和函数,都可以使用了。

    【讨论】:

      【解决方案2】:

      您可以创建一个新的调试配置(运行 > 编辑配置)并将其指向您项目中的一个脚本(例如,您 gitignore 称为 debug.py)。然后,当您点击调试时,它会运行该脚本并将您放入控制台。

      就个人而言,我更喜欢在嵌入式终端中启动ipython,而不是使用调试控制台。在 linux 上,您可以在 .bashrc 中创建一个 bash 别名,例如 alias debug_myproject=PYTHONSTARTUP=$HOME/myproject/debug.py ipython。然后调用 debug_myproject 将运行该脚本并将您放入 ipython 控制台。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-12
        • 2020-08-31
        • 1970-01-01
        • 2016-12-05
        • 1970-01-01
        • 1970-01-01
        • 2012-04-13
        • 1970-01-01
        相关资源
        最近更新 更多