pipx安装xlwings后VBA调用提示ModuleNotFoundError问题求助
问题原因及解决办法
核心原因
pipx 是把包安装在隔离的虚拟环境里的,你加到 sys.path 的 ~/.local/bin 只是存放可执行脚本的路径,根本不是 xlwings 模块文件所在的位置,所以 Python 找不到它。
解决步骤
定位pipx安装xlwings的虚拟环境路径
打开终端运行pipx list,会输出类似如下内容,找到xlwings对应的location字段:package xlwings X.X.X, installed at ~/.local/pipx/venvs/xlwings在此路径基础上拼接 Python 版本对应的 site-packages 目录,最终路径类似
~/.local/pipx/venvs/xlwings/lib/python3.10/site-packages(把3.10换成你实际的Python版本)。修改VBA代码中的sys.path配置
把原来添加~/.local/bin的部分,替换成上面找到的site-packages路径:Sub RunPythonScript() RunPython "import sys; sys.path.extend([r'/Users/xxxx/Sync/Python-prod/scripts', r'/Users/xxxx/.local/pipx/venvs/xlwings/lib/python3.10/site-packages']); import SOP_callPython; SOP_callPython.my_function()" Call InsertTimestamp End Sub更省心的替代方案
直接让xlwings关联pipx安装的Python解释器,无需手动修改sys.path:
在终端执行命令:pipx run xlwings config set interpreter ~/.local/pipx/venvs/xlwings/bin/python配置完成后,Excel调用
RunPython时会自动使用这个隔离环境,模块找不到的问题就能解决。
内容的提问来源于stack exchange,提问作者webby
相关产品推荐
相关产品推荐

