Debugging 如何从IDE运行/调试Streamlight应用程序

Debugging 如何从IDE运行/调试Streamlight应用程序,debugging,intellij-idea,pycharm,ide,streamlit,Debugging,Intellij Idea,Pycharm,Ide,Streamlit,我真的很喜欢Streamlight作为一个研究环境,它将我可以快速设计的笔记本/仪表板一样的输出与纯粹的定义代码(无单元格等)混合在一起,并能够在运行时通过小部件影响我的代码 为此,我正在寻找一种运行甚至调试Streamlight应用程序的方法,因为它的默认启动方式是通过命令行: streamlit运行代码.py 这两种方法都有吗 干杯我找到了至少从IDE运行代码的方法(在我的例子中是PyCharm)。streamlit run code.py命令实际上调用了python-m streamlit

我真的很喜欢Streamlight作为一个研究环境,它将我可以快速设计的笔记本/仪表板一样的输出与纯粹的定义代码(无单元格等)混合在一起,并能够在运行时通过小部件影响我的代码

为此,我正在寻找一种运行甚至调试Streamlight应用程序的方法,因为它的默认启动方式是通过命令行:

streamlit运行代码.py

这两种方法都有吗


干杯

我找到了至少从IDE运行代码的方法(在我的例子中是PyCharm)。
streamlit run code.py
命令实际上调用了
python-m streamlit.cli run code.py
,因此可以将其配置为使用IDE运行

在我的例子中,
-m streamlit.cli run
进入运行/调试配置的解释器选项字段,code.py进入脚本路径字段

不幸的是,由于PyCharm附加的参数被传递给streamlit而不是pydev调试器,因此这种方式的调试似乎不起作用

编辑:刚刚找到一种调试自己脚本的方法。不调试脚本,而是调试运行脚本的
streamlit.cli
模块。为此,您需要在最顶部的字段中将
脚本路径:
更改为
模块名称:
(那里有一个稍微隐藏的下拉框…)。然后可以将
streamlit.cli
插入该字段。作为参数,您现在将
run code.py
添加到运行/调试配置的
参数:
字段中。

我提出了一种替代解决方案,允许您以自然的方式使用PyCharm调试。只需设置一个运行脚本(我称之为
run.py
),如下所示:

from streamlit import bootstrap

real_script = 'main_script.py'

bootstrap.run(real_script, f'run.py {real_script}', [], {})

并将其设置为PyCharm中的正常Python运行配置。

如果您是VS代码用户,可以通过将以下配置添加到launch.json文件来调试Streamlight应用程序:

{
        "name": "Python:Streamlit",
        "type": "python",
        "request": "launch",
        "module": "streamlit.cli",
        "args": [
            "run",
            "${file}",
            "--server.port",
            "SPECIFY_YOUR_OWN_PORT_NUMBER_HERE"            ]
    }
指定端口号允许您在每次运行调试脚本时以固定端口号启动应用程序

更新launch.json文件后,您需要导航到VS code应用程序左侧空白处的Run选项卡,并告诉它应该使用哪个Python配置来调试应用程序:


感谢您为我指出解决方案!

对我有效,thx!下面的一行对我的bootstrap.run有效(real_script,f'run.py{real_script}',[],{})太棒了!我认为这是最简单的解决办法。而且感谢@ RudigerWolf的修复,你应该考虑编辑原来的答案。你是救世主!谢谢!再次感谢,这是非常有用的和工作!提醒其他人不要忘记建立正确的工作目录,因为我没有做过第一次,很明显。无法工作。