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

LibreOffice Python已装pymodbus但APSO中导入失败求助

问题描述
  • 系统环境:Win7/64位
  • LibreOffice版本:7.4(内置Python-core-3.8.14)
  • 已安装APSO扩展

操作流程:

  1. 将get-pip.py放入LibreOffice程序目录,完成pip安装
  2. 使用该pip安装pymodbus,执行pip list确认模块已安装,且文件存在于site-packages目录

异常情况:在APSO中运行脚本from pymodbus.client.sync import ModbusTcpClient时,触发ImportError:

<class 'ImportError'>: No module named 'pymodbus.client.sync' (or 'pymodbus.client.sync.ModbusTcpClient' is unknown)
  File "C:\Program Files (x86)\misc\LibreOffice\program\pythonscript.py", line 1057, in getScript
    mod = self.provCtx.getModuleByUrl( fileUri )
  File "C:\Program Files (x86)\misc\LibreOffice\program\pythonscript.py", line 494, in getModuleByUrl
    exec(code, entry.module.__dict__)
  File "C:\Program Files (x86)\misc\LibreOffice\share\Scripts\python\MyTestScript.py", line 8, in <module>
    from pymodbus.client.sync import ModbusTcpClient
  File "C:\Program Files (x86)\misc\LibreOffice\program\uno.py", line 425, in _uno_import
    raise uno_import_exc
  File "C:\Program Files (x86)\misc\LibreOffice\program\uno.py", line 346, in _uno_import
    return _builtin_import(name, *optargs, **kwargs)

用户在其他Python 3.8环境中可正常使用该模块,首次在LibreOffice环境遇到此问题。

原因分析
  • 路径识别问题:LibreOffice内置Python的sys.path未包含pymodbus所在的site-packages目录,导致解释器无法定位模块
  • pip环境混淆:安装时可能误使用了系统全局pip,而非LibreOffice内置Python对应的pip,导致模块安装到了错误的路径
  • 版本兼容问题:pymodbus v2.0及以上版本已重构模块结构,同步客户端路径从pymodbus.client.sync调整为pymodbus.client,若LibreOffice中安装的是新版本,旧导入语句会失效
解决办法

方法1:手动添加模块搜索路径

  1. 在APSO中运行以下脚本,查看当前Python的模块搜索路径:
import sys
print(sys.path)
  1. 找到pymodbus所在的site-packages目录(例如C:\Program Files (x86)\misc\LibreOffice\program\Lib\site-packages),若该路径不在输出列表中,在导入pymodbus前手动添加:
import sys
sys.path.append("你的site-packages实际路径")
from pymodbus.client.sync import ModbusTcpClient

方法2:用LibreOffice内置Python重新安装模块

  1. 打开命令提示符,切换到LibreOffice的program目录:
cd "C:\Program Files (x86)\misc\LibreOffice\program"
  1. 使用内置Python执行pip安装pymodbus,确保模块安装到正确路径:
python.exe -m pip install pymodbus

方法3:适配新版本pymodbus的导入语句

若LibreOffice中安装的是pymodbus v2.0及以上版本,修改导入语句为:

from pymodbus.client import ModbusTcpClient

(同步客户端已整合到主client模块,无需指定.sync子路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:15:33