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 附加的参数被传递给了 streamlit 而不是 pydev 调试器。
编辑:刚刚找到了一种调试自己脚本的方法。您不是调试脚本,而是调试streamlit.cli运行脚本的模块。要做到这一点,你需要从改变Script path:到Module name:在最上面的字段(有一个稍微隐藏下拉框那里...)。然后你可以插入streamlit.cli到字段中。作为参数,您现在添加run code.py到Parameters:运行/调试配置字段中。

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.py如run.
小智 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 配置来调试应用程序:
感谢git-steb为我指出解决方案!
我提出了一个替代解决方案,它允许您以自然的方式使用 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 运行配置。
由于用户界面略有变化,以下是我在尝试本的建议后最终所做的事情。
需要注意的一件事是,如果在使用调试器时修改代码,您可能会看到错误。重新启动调试器通常可以解决问题。
在“运行/调试配置”窗口中,添加具有以下设置的新 Python 配置:
module从“运行脚本或模块”下拉列表中选择streamlit在“模块名称”字段中输入Add option>Parametersrun app.py在“参数”字段中输入