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

Ben*_*Ben 19 ide debugging intellij-idea pycharm streamlit

我真的很喜欢 streamlit 作为研究环境,混合笔记本/仪表板之类的输出,我可以使用纯代码快速设计其定义(无单元格等),并且能够在运行时通过小部件影响我的代码。

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

streamlit run code.py

有没有办法做到?

干杯

Ben*_*Ben 30

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

在我的情况下,-m streamlit.cli run进入运行/调试配置的解释器选项字段,code.py 按预期进入脚本路径字段。

此处显示的 PyCharm 运行配置

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

编辑:刚刚找到了一种调试自己脚本的方法。您不是调试脚本,而是调试streamlit.cli运行脚本的模块。要做到这一点,你需要从改变Script path:Module name:在最上面的字段(有一个稍微隐藏下拉框那里...)。然后你可以插入streamlit.cli到字段中。作为参数,您现在添加run code.pyParameters:运行/调试配置字段中。 此处显示的运行/调试配置

  • 谢谢,这非常有用并且有效!只是提醒其他人不要忘记设置正确的工作目录,因为我不是第一次这样做,而且它显然无法工作。 (5认同)
  • 注意:您可能必须将其保留为“streamlit”而不是“streamlit.cli”。这样对我有用。 (5认同)
  • 对于较新的版本(我假设是 1.12 及更高版本),根据[此问题](https://github.com/streamlit/streamlit/issues),应该使用 `streamlit.web.cli` 而不是 `streamlit.cli` /5146#issuecomment-1223306586)。 (3认同)

Kha*_*lam 16

2022 年 8 月 12 日: 请更新您的pip and streamlit版本。有时,必须更新所有两个版本。

pip install pip --upgrade
pip install --upgrade streamlit
Run Code Online (Sandbox Code Playgroud)

打开 Pycharm Editor 并转到Edit Configuration如下图所示的文件。不要清除我的下拉框中的streamlit。单击下拉框。

在此输入图像描述

运行/调试配置:

您必须更改三个目录,请记住script path

1)您可以script path通过在终端中输入which streamlit并将路径粘贴到 中来获取script path

2)单击工作目录并给出包含streamlit.txt的python文件的目录。

3)Paramaters:python文件名,app.pyrun.

在此输入图像描述


小智 11

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

{
        "name": "Python:Streamlit",
        "type": "python",
        "request": "launch",
        "module": "streamlit.cli",
        "args": [
            "run",
            "${file}",
            "--server.port",
            "SPECIFY_YOUR_OWN_PORT_NUMBER_HERE"            ]
    }
Run Code Online (Sandbox Code Playgroud)

指定端口号允许您在每次运行调试脚本时在固定端口号上启动应用程序。

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

为 python 解释器选择调试配置

感谢git-steb为我指出解决方案!

  • 看起来您可能还需要切换到“module”:“streamlit”,因为他们提到现在正式支持这一点。但在进行编辑之前应该有人先测试一下。 (2认同)

cht*_*mon 7

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

from streamlit import bootstrap

real_script = 'main_script.py'

bootstrap.run(real_script, f'run.py {real_script}', [], {})
Run Code Online (Sandbox Code Playgroud)

并将其设置为 PyCharm 中的普通 Python 运行配置。

  • 以下行对我有用 bootstrap.run(real_script, f'run.py {real_script}', [] , {}) (2认同)

Scr*_*eap 6

由于用户界面略有变化,以下是我在尝试本的建议后最终所做的事情。

需要注意的一件事是,如果在使用调试器时修改代码,您可能会看到错误。重新启动调试器通常可以解决问题。


“运行/调试配置”窗口中,添加具有以下设置的新 Python 配置:

  • 确认“Python解释器”设置为您创建的虚拟环境并且“工作目录”正确
  • module从“运行脚本或模块”下拉列表中选择
  • streamlit在“模块名称”字段中输入
  • 使用“修改选项”下拉菜单,选择Add option>Parameters
  • run app.py在“参数”字段中输入