我真的很喜欢streamlit作为一个研究环境。混合笔记本/ Jmeter 板一样的输出,我可以快速设计与纯代码的定义(没有单元格等),以及通过小部件影响我的代码,而它运行的能力是一个游戏规则的改变。
出于这个目的,我一直在寻找一种运行甚至调试Streamlit应用程序的方法,因为教程只显示了它是通过命令行启动的:
streamlit run code.py
有没有办法从IDE执行或除错?
我真的很喜欢streamlit作为一个研究环境。混合笔记本/ Jmeter 板一样的输出,我可以快速设计与纯代码的定义(没有单元格等),以及通过小部件影响我的代码,而它运行的能力是一个游戏规则的改变。
出于这个目的,我一直在寻找一种运行甚至调试Streamlit应用程序的方法,因为教程只显示了它是通过命令行启动的:
streamlit run code.py
有没有办法从IDE执行或除错?
6条答案
按热度按时间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
qmelpv7a2#
如果您是VS Code用户,则可以通过将以下配置添加到
launch.json
文件来调试Streamlit应用:通过指定端口号,您可以在每次运行调试脚本时在固定端口号上启动应用程序。
更新launch.json文件后,需要导航到VS代码应用程序左侧的Run选项卡,并告诉它应该使用哪个Python配置来调试应用程序:
Selecting Debug config for python interpreter
感谢git-steb为我指出了解决方案!
ulydmbyx3#
我提出了一个替代的解决方案,它允许你以一种自然的方式使用PyCharm调试。
并在PyCharm中将其设置为正常Python运行配置。
n8ghc7c14#
对@aiwa的答案做了一些修改-这对我在VS代码版本1.58中有效
r1zk6ea15#
不能发表评论,所以我不得不把这个作为一个答案。
@Ben的回答的补充(模块调试部分):如果您的脚本需要使用一些
args
来运行,您可以轻松地将它们添加为run main.py -- --option1 val1 --option2 val2
个注意第一个
--
用空格表示:需要停止streamlit参数解析并传递给main.py
参数解析r7xajy2e6#
**2022年8月12日:**请更新您的
pip and streamlit
版本。有时候,这两个版本都必须更新。打开Pycharm编辑器并转到下图中提到的
Edit Configuration
文件。不要清除我的下拉框中的streamlit。单击下拉框。运行/调试配置:
你必须改变三个目录记住
script path
。**1)**您可以通过在终端中键入
which streamlit
并将路径粘贴到script path
中来获得script path
。**2)**点击工作目录并给予包含streamlit文件的python文件的目录。
**3)**在
Paramaters:
中,将app.py
之类的python文件名指定为run.