运行excalibur webserver报语法错误及camelot.ext模块缺失问题
执行
excalibur webserver双环境报错修复方案 场景1:Jupyter Notebook环境运行报语法错误
- 报错表现:直接在代码单元输入
excalibur webserver执行,抛出语法错误,报错信息如下:
Input In [15] excalibur webserver ^ SyntaxError: invalid syntax
- 报错原因:
excalibur webserver是命令行终端指令,不属于Python合法语法,不能直接在Python代码执行单元中运行。 - 修复方法:
- 若要在Jupyter中运行,在命令前加
!前缀,调用系统shell执行,即输入!excalibur webserver - 直接切换到系统CMD/PowerShell/终端等原生命令行环境执行该指令
- 若要在Jupyter中运行,在命令前加
场景2:CMD命令行运行报camelot.ext模块缺失错误
- 报错表现:命令行执行指令时抛出Traceback回溯错误,最终报错为
ModuleNotFoundError: No module named 'camelot.ext',溯源为excalibur的tasks.py文件导入camelot.ext.ghostscript依赖时找不到对应模块,完整报错信息如下:
Traceback (most recent call last): File "c:\users\User64390\appdata\local\programs\python\python38-32\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\User64390\appdata\local\programs\python\python38-32\lib\runpy.py", line 87, in run_code exec(code, run_globals) File "C:\Users\User64390\AppData\Local\Programs\Python\Python38-32\Scripts\excalibur.exe_main.py", line 4, in File "c:\users\User64390\appdata\local\programs\python\python38-32\lib\site-packages\excalibur\cli.py", line 10, in from .tasks import split, extract File "c:\users\User64390\appdata\local\programs\python\python38-32\lib\site-packages\excalibur\tasks.py", line 13, in from camelot.ext.ghostscript import Ghostscript ModuleNotFoundError: No module named 'camelot.ext'
- 报错原因:当前安装的camelot-py版本过高,新版camelot-py移除了
camelot.ext下的ghostscript模块,和现有excalibur-py版本的依赖导入逻辑不兼容。 - 修复方法:
- 卸载当前已安装的不兼容版本包:
pip uninstall -y excalibur-py camelot-py- 安装与excalibur-py适配的指定版本camelot-py:
pip install camelot-py==0.7.1- 重新安装excalibur-py:
pip install excalibur-py- 若后续运行仍提示ghostscript相关错误,需确认系统已安装Ghostscript桌面程序,且程序的bin目录已添加到系统环境变量PATH中。
内容的提问来源于stack exchange,提问作者r anderson
相关产品推荐
相关产品推荐

