使用Panel时PyScript中的AttributeError

问题描述 投票:0回答:1

我通过 Pyscript 运行 Python,我的代码过去可以正常工作大约 1 年。但是它不再工作,我收到以下错误消息

JsException(PythonError: Traceback (most recent call last): 
File "/lib/python3.10/asyncio/futures.py", line 201, 
  in result raise self._exception 
File "/lib/python3.10/asyncio/tasks.py", line 232, 
  in __step result = coro.send(None) 
File "/lib/python3.10/site-packages/_pyodide/_base.py", line 500, 
  in eval_code_async await CodeRunner( 
File "/lib/python3.10/site-packages/_pyodide/_base.py", line 353, 
  in run_async await coroutine File "", line 2, in 
File "/lib/python3.10/site-packages/panel/__init__.py", line 48, 
  in from . import layout # noqa 
File "/lib/python3.10/site-packages/panel/layout/__init__.py", line 31, 
  in from .accordion import Accordion # noqa 
File "/lib/python3.10/site-packages/panel/layout/accordion.py", line 5, 
  in from .base import NamedListPanel 
File "/lib/python3.10/site-packages/panel/layout/base.py", line 13, 
  in from ..reactive import Reactive 
File "/lib/python3.10/site-packages/panel/reactive.py", line 33, 
  in from .viewable import Layoutable, Renderable, Viewable 
File "/lib/python3.10/site-packages/panel/viewable.py", line 25, 
  in from .config import config, panel_extension 
File "/lib/python3.10/site-packages/panel/config.py", line 417, 
  in config = _config(**{k: None if p.allow_None else getattr(_config, k) 
File "/lib/python3.10/site-packages/panel/config.py", line 216, 
  in __init__ super().__init__(**params) 
File "/lib/python3.10/site-packages/param/parameterized.py", line 4139, 
  in __init__ if not isinstance(self._param__private, _InstancePrivate): 
File "/lib/python3.10/site-packages/panel/config.py", line 289, 
  in __getattribute__ init = super().__getattribute__('initialized') AttributeError: '_config' object has no attribute 'initialized' )"

我不知道如何解决它,所以我还没有尝试过任何东西。

我的代码如下:

<html>

<head>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://unpkg.com/@holoviz/[email protected]/dist/bundled/bootstraptemplate/bootstrap.css">

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vega@5"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vega-lite@5"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vega-embed@6"></script>
    <script type="text/javascript" src="https://unpkg.com/[email protected]/dist/js/tabulator.js"></script>
    <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.js"></script>
    <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js"></script>
    <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@holoviz/[email protected]/dist/panel.min.js"></script>
    <script type="text/javascript">
      Bokeh.set_log_level("info");
    </script>

    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
    <py-env>
        - numpy
        - pandas
        - panel==0.13.1a2
        - xlsxwriter
        - openpyxl

    </py-env>
</head>

<body>
    <div class="container-fluid d-flex flex-column vh-100 overflow-hidden" id="container">
        <nav class="navbar navbar-expand-md navbar-dark sticky-top shadow" id="header"
            style="background-color: #0f54ea;">
            <div class="app-header">
                <a class="title" href="" style="color: #f7f6f3;"> Calcuator</a>
            </div>
        </nav>

        <div class="row overflow-hidden" id="content">
            <div class="col mh-100 float-left" id="main">
                <p> Please Upload a CSV file below to start the  calculation! </p>
                <div id="fileinput"></div>
                <div id="table"></div>
                <div id="download"></div>
            </div>
        </div>
    </div>
<py-script>
import asyncio
import panel as pn

import pandas as pd
from panel.io.pyodide import show
import xlsxwriter
import openpyxl

file_input = pn.widgets.FileInput(accept='.xlsx', width=180)
button_upload = pn.widgets.Button(name='Upload', button_type='primary', width=100)
row = pn.Row(file_input, button_upload, height=75)

table = pn.widgets.Tabulator(pagination='remote', page_size=20, disabled=True)
document.getElementById('table').style.display = 'none'


await show(row, 'fileinput')
await show(table, 'table')
await show(file_download_csv, 'download')

print(row)
print(table)
print(file_download_csv)

document.getElementById('download').style.display = 'none'

</py-script>
</body>

</html>

更新: 我将 PyScript 更新到最新版本:https://pyscript.net/latest/pyscript.js

现在我得到了一个不同的错误,错误是:

UserError: (PY9000): The use of top-level "await", "async for", and "async with" has been removed.
Please write a coroutine containing your code and schedule it using asyncio.ensure_future() or similar.
See https://docs.pyscript.net/latest/guides/asyncio.html for more information.
```

I think this error is more specific however, I have no idea what a coroutine is, any help will be highly appreciated.
python panel pyscript
1个回答
0
投票

如果您发现这有任何帮助,您可能应该跟进此处提出的问题https://github.com/pyscript/pyscript/issues/1821#issuecomment-1815707881

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.