You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

panel serve运行notebook报hvplot.pandas模块找不到错误

问题描述

使用hvplot绘制交互式图表时程序运行异常,抛出错误:
ModuleNotFoundError: No module named 'hvplot.pandas'; 'hvplot' is not a package

运行环境版本

python 3.10.4
conda 4.13.0
panel                     0.13.0          py310h06a4308_0
pyviz_comms               2.0.2              pyhd3eb1b0_0
holoviews                 1.14.8             pyhd3eb1b0_0
hvplot                    0.7.3              pyhd3eb1b0_1
pandas                    1.4.2           py310h295c915_0

已验证现象

  • 终端Python交互环境中导入hvplot.pandas完全正常,可正常读取到包路径:
(hvplots) xy@win-712M7G3:/mnt/c/Users/xy$ python
Python 3.10.4 (main, Mar 31 2022, 08:41:55) [GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import hvplot.pandas
>>> hvplot.pandas.__file__
'/home/xy/envs/hvplots/lib/python3.10/site-packages/hvplot/pandas.py'
  • 执行panel serve hvplot_interactive.ipynb命令运行notebook文件时触发上述报错,运行日志如下:
(hvplots) xy@win-712M7G3:/mnt/c/Users/xy$ panel serve hvplot_interactive.ipynb
2022-07-07 15:41:10,707 Starting Bokeh server version 2.4.2 (running on Tornado 6.1)
2022-07-07 15:41:10,741 User authentication hooks NOT provided (default user enabled)
2022-07-07 15:41:10,742 Bokeh app running at: http://localhost:5006/hvplot_interactive
2022-07-07 15:41:10,742 Starting Bokeh server with process id: 3112
/home/xy/envs/hvplots/lib/python3.10/site-packages/pandas/__init__.py
2022-07-07 16:05:08,882 Error running application handler <bokeh.application.handlers.notebook.NotebookHandler object at 0x7ff651f7d780>: No module named 'hvplot.pandas'; 'hvplot' is not a package
File 'hvplot_interactive.ipynb', line 38, in <module>:
"source": [ Traceback (most recent call last):
  File "/home/xy/envs/hvplots/lib/python3.10/site-packages/bokeh/application/handlers/code_runner.py", line 231, in run
    exec(self._code, module.__dict__)
  File "/mnt/c/Users/xy/hvplot_interactive.ipynb", line 38, in <module>
    "source": [
ModuleNotFoundError: No module named 'hvplot.pandas'; 'hvplot' is not a package

2022-07-07 16:05:09,121 WebSocket connection opened
2022-07-07 16:05:09,121 ServerConnection created
^C
Interrupted, shutting down
故障原因

这是Python导入机制导致的经典同名包遮挡问题:
Python执行导入时会优先从当前运行工作目录搜索匹配的模块/包,你执行panel serve命令所在的目录下,存在自定义命名为hvplot.py的脚本文件,或者命名为hvplot的文件夹,Python启动服务导入时会先命中这个自定义的同名文件/文件夹,把它当成官方安装的hvplot包去加载,这个自定义对象里自然没有pandas子模块,就会抛出'hvplot' is not a package的错误。
交互环境下导入正常,大概率是测试交互导入时,当前目录下还没生成这个同名文件,或者当时的工作目录和执行panel serve时的工作目录存在差异。
日志里出现的"source": [报错片段,是notebook解析异常带出的ipynb json结构字段,不是核心故障点。

解决步骤
  • 切到存放hvplot_interactive.ipynb、执行panel serve命令的目录,执行ls查看所有文件,找到名为hvplot.py的自定义脚本、或者名为hvplot的自定义文件夹,将其重命名为和第三方包不冲突的名称,比如hvplot_test.py。
  • 如果没找到上述同名文件/文件夹,直接执行rm -rf __pycache__清理当前目录下的Python编译缓存,避免旧缓存干扰模块导入。
  • 清理完成后重新执行panel serve hvplot_interactive.ipynb即可正常运行。

内容的提问来源于stack exchange,提问作者sjd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:57:21