intellij-idea 如何从IDE运行/调试Streamlit应用程序

cidc1ykv  于 2022-11-01  发布在  其他
关注(0)|答案(6)|浏览(657)

我真的很喜欢streamlit作为一个研究环境。混合笔记本/ Jmeter 板一样的输出,我可以快速设计与纯代码的定义(没有单元格等),以及通过小部件影响我的代码,而它运行的能力是一个游戏规则的改变。
出于这个目的,我一直在寻找一种运行甚至调试Streamlit应用程序的方法,因为教程只显示了它是通过命令行启动的:

streamlit run code.py

有没有办法从IDE执行或除错?

h5qlskok

h5qlskok1#

我找到了一种至少可以从IDE运行代码的方法(在我的例子中是PyCharm)。可以直接从IDE调用streamlit run code.py命令。(streamlit run code.py命令实际上调用python -m streamlit.cli run code.py,这是以前从IDE运行的解决方案。)
-m streamlit run进入运行/调试配置的解释器选项字段(Streamlit支持这一点,因此保证将来不会被破坏1),code.py进入脚本路径字段。在以前的版本中,它也可以在运行/调试配置的解释器选项字段中使用-m streamlit.cli run,但这个选项将来可能会被破坏。

不幸的是,这种调试方式似乎不起作用,因为PyCharm附加的参数传递给了streamlit,而不是pydev调试器。
编辑:刚刚找到了一种调试自己脚本的方法。您不是调试自己的脚本,而是调试运行脚本的streamlit.cli模块。为此,您需要在最上面的字段中将Script path:更改为Module name:(那里有一个稍微隐藏的下拉框...)。然后你可以在字段中插入streamlit.cli。作为参数,您现在将run code.py添加到运行/调试配置的Parameters:字段中。

EDIT:添加@sismo的评论
如果您的脚本需要使用一些参数运行,您可以轻松地将它们添加为
run main.py -- --option1 val1 --option2 val2
注意第一个--用空格表示:需要停止streamlit参数解析并传递给main.py参数解析。
1个https://discuss.streamlit.io/t/run-streamlit-from-pycharm/21624/3

qmelpv7a

qmelpv7a2#

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

{
        "name": "Python:Streamlit",
        "type": "python",
        "request": "launch",
        "module": "streamlit",
        "args": [
            "run",
            "${file}",
            "--server.port",
            "SPECIFY_YOUR_OWN_PORT_NUMBER_HERE"            ]
    }

通过指定端口号,您可以在每次运行调试脚本时在固定端口号上启动应用程序。
更新launch.json文件后,需要导航到VS代码应用程序左侧的Run选项卡,并告诉它应该使用哪个Python配置来调试应用程序:
Selecting Debug config for python interpreter
感谢git-steb为我指出了解决方案!

ulydmbyx

ulydmbyx3#

我提出了一个替代的解决方案,它允许你以一种自然的方式使用PyCharm调试。

from streamlit import bootstrap

real_script = 'main_script.py'

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

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

n8ghc7c1

n8ghc7c14#

对@aiwa的答案做了一些修改-这对我在VS代码版本1.58中有效

{
"configurations": [
    {
        "name": "Python:Streamlit",
        "type": "python",
        "request": "launch",
        "module": "streamlit.cli",
        "args": [
            "run",
            "${file}"
        ],
    }
 ]
}
r1zk6ea1

r1zk6ea15#

不能发表评论,所以我不得不把这个作为一个答案。
@Ben的回答的补充(模块调试部分):如果您的脚本需要使用一些args来运行,您可以轻松地将它们添加为
run main.py -- --option1 val1 --option2 val2
注意第一个--用空格表示:需要停止streamlit参数解析并传递给main.py参数解析

r7xajy2e

r7xajy2e6#

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

pip install pip --upgrade
pip install --upgrade streamlit

打开Pycharm编辑器并转到下图中提到的Edit Configuration文件。不要清除我的下拉框中的streamlit。单击下拉框。

运行/调试配置:

你必须改变三个目录记住script path

**1)**您可以通过在终端中键入which streamlit并将路径粘贴到script path中来获得script path
**2)**点击工作目录并给予包含streamlit文件的python文件的目录。
**3)**在Paramaters:中,将app.py之类的python文件名指定为run.

相关问题