每次在 Python 脚本中进行更改时,VS Code 都会打开新浏览器

Posted

技术标签:

【中文标题】每次在 Python 脚本中进行更改时,VS Code 都会打开新浏览器【英文标题】:VS Code opens new browser everytime a change is made in Python script 【发布时间】:2022-01-24 01:11:48 【问题描述】:

我正在 VS 代码 中构建一个 Bokeh 应用程序,每当我点击运行(右上角的绿色箭头)时,更改都会打开一个新浏览器。我认为这很容易实现,但我正在努力寻找一种方法,即每次进行更改时都可以刷新同一个浏览器,而不是每次点击运行时都打开一个新浏览器,例如

有没有类似于 Live Server 用于 html 文件的方法?如果有帮助,我的散景应用程序的代码如下所示

from random import random

from bokeh.layouts import column, row, widgetbox, layout
from bokeh.models import Button
from bokeh.palettes import RdYlBu3
from bokeh.plotting import figure, curdoc

import pandas as pd
import pyodbc
from bokeh.plotting import figure, output_file, show, save
from bokeh.models import ColumnDataSource, HoverTool, CategoricalColorMapper, Legend, PrintfTickFormatter, CustomJS, Select
from bokeh.models.widgets import (Select)
from bokeh.models.widgets import Div


### Read in the data
df = pd.read_excel('RS data.xlsx')

### Set up Figure
p = figure(x_range=(0, 20), y_range=(0, 10), plot_height=400, plot_width=800)
p.add_layout(Legend(), 'right')
p.toolbar_location = None


df['Unique Story Count'] = df.groupby(['Person','Sprint'])['Story Id'].transform('nunique')

### Convert data into a bokeh data type
df1 = df[['Person', 'Sprint', 'Unique Story Count']]
df1['Person'].unique()
df1 = df1[df1['Person'] == 'Analyst 1'].drop_duplicates()
source1 = ColumnDataSource(df1)

x='Sprint'
y='Unique Story Count'

p1 = p.line(
    x=x, y=y, 
    color='#d96ad5', line_color='#d96ad5', 
    line_width=2, line_alpha=1, source=source1
)

p2 = p.circle(
    x=x,
    y=y,
    #legend_label='',
    size=6,
    fill_alpha=1,
    # color='field': 'Submission', 'transform': mapper,
    source=source1
)

p.xaxis.ticker = list(range(0, 21))
p.xgrid.ticker = list(range(0, 21))

p.xaxis.axis_label = 'Sprint'
p.yaxis.axis_label = 'Story Count'

## tooltip for point
p.add_tools(HoverTool(
    renderers=[p2],
    tooltips=[
        ('Spri Num', '@Sprint'),
        ('Story Count', '@Unique Story Count')
    ],
    mode='mouse')
)

show(p)

【问题讨论】:

【参考方案1】:

这是因为如果 output_file() 已被调用,show() 在浏览器中打开 HTML 文件。这在docs 中也有说明。

您应该使用save() 而不是show(),您可以查看save() 的文档而不是here。如果您在该 HTML 文件上打开了实时服务器,您应该能够看到 HTML 页面上反映的更改。

【讨论】:

感谢您的帮助,它有效!我将show(p) 替换为save(p) 并点击运行。然后我用 Live Server 打开了 html 文件。当我对 Python 脚本进行更改时,我需要保存并再次运行它才能在同一个浏览器中查看更改! 很高兴听到 :)

以上是关于每次在 Python 脚本中进行更改时,VS Code 都会打开新浏览器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中更改 IP 地址时可视化它们?

为啥我的vs2010安装时不能更改路径。预设C盘

如何遍历整个python脚本,并且每次更改订单都会运行

在 Python 中进行一些更改的重复行

如何在CMake构建中每次运行python脚本?

使用 VS2015 和趋势科技杀毒软件进行缓慢调试