【问题标题】:VS Code - Run Debug Configuration for a console_script in module modeVS Code - 在模块模式下为 console_script 运行调试配置
【发布时间】:2020-05-09 08:22:08
【问题描述】:

我的setup.py 有以下控制台脚本作为入口点:

entry_points={
        'console_scripts': ['script=myapp.app:do_something',
                            'script2=myapp.app:do_something2'],
    },

结构如下

.
├── myapp
│   ├── __init__.py
│   ├── app.py
│   ├── mod.py
│   ├── mod2.py
│   └── submodules
│   ├── __init__.py
│   └── mod3.py
├── requirements.txt
└── setup.py

应用看起来像

##my_app.app

def do_something():
  #do stuff
def do_something2():
  #do other stuff

如何在这些模块属性中输入 VS 代码调试配置。如果我使用if __name__ == "__main__": do_something(),我有这个可以运行模块但想要单独的launch.json文件,具体取决于console_scripts

##launch.json
{
  "configurations": [
    {
      "name": "Python: Module",
      "type": "python",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "module": "myapp.app",
      "args": ["--hello world"]
    }
  ]
}

认为你可以做类似的事情:

  "module": "myapp.app:do_something",

可惜:

No module named myapp.app:do_something

【问题讨论】:

    标签: python debugging visual-studio-code


    【解决方案1】:

    目前没有办法使这项工作。至少每个入口点需要一个单独的模块,或者有一个单独的模块,该模块接受一个命令行参数,然后选择要调用的函数。

    【讨论】:

    • 很高兴知道。谢谢
    • 还是这样吗?
    【解决方案2】:

    这是一个 launch.json,它可以帮助我调试 mkdocs 插件:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Module",
                "type": "python",
                "request": "launch",
                "console": "integratedTerminal",
                "module": "mkdocs",
                "args": ["serve"]
            }
        ]
    }
    

    它使用"console": "integratedTerminal",

    mkdocs 提供了mkdocs 入口点,它接受多个参数,例如buildservelaunch.json 允许我在 mkdocs 插件 python 文件中设置断点,并在运行 mkdocs 构建/服务过程后停止该断点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2022-06-15
      • 2021-07-25
      • 2020-05-22
      相关资源
      最近更新 更多