从 Excel "No module named..." 错误调用 xlwings
Calling xlwings from Excel "No module named..." Error
我正在尝试学习使用 xlwings 0.9.2 从 Excel VBA 启动 Python 脚本的技巧。根据文档,我需要将 PYTHONPATH
更改为我的 py 文件的路径。我看过这个问题的几个版本和各种答案,但 none 已经解决了我的具体情况。我有一个基本的测试模块 "module1.py" 和一个位于桌面上的 Excel 文件 "Book2.xlsm",它有一个 运行 这个宏的按钮:
Sub macro1()
RunPython ("import module1.py; module1.run_all()")
End Sub
模块 1 是这样的:
import xlwings as xw
def run_all():
wb.Book.caller()
xw.sheets("Sheet1").range("A1").value = "Done!"
return
然后我导入 "xlwings.bas" 文件并编辑 VBA 代码以读取 PYTHONPATH = "C:\Users\bwamp\Desktop\module1\module1
,它指的是包含 "module1.py" 的子文件夹(完整路径:"C:\Users\bwamp\Desktop\module1\module1\module1.py",为清楚起见)。按 运行 macro1
按钮,出现以下错误:
错误
回溯(最近调用最后):
中的文件“”,第 1 行
ImportError: 没有名为 'module1.py' 的模块; 'module1' 不是包
按 Ctrl+C 将此消息复制到剪贴板。
好的
知道我做错了什么吗?
您有两个错误:您需要导入没有 .py
结尾的模块:
Sub macro1()
RunPython ("import module1; module1.run_all()")
End Sub
它是 xw.Book.caller()
而不是 wb.Book.caller()
。
我有同样的错误。通过降级到 xlwings 版本 0.7.2
解决
我正在尝试学习使用 xlwings 0.9.2 从 Excel VBA 启动 Python 脚本的技巧。根据文档,我需要将 PYTHONPATH
更改为我的 py 文件的路径。我看过这个问题的几个版本和各种答案,但 none 已经解决了我的具体情况。我有一个基本的测试模块 "module1.py" 和一个位于桌面上的 Excel 文件 "Book2.xlsm",它有一个 运行 这个宏的按钮:
Sub macro1()
RunPython ("import module1.py; module1.run_all()")
End Sub
模块 1 是这样的:
import xlwings as xw
def run_all():
wb.Book.caller()
xw.sheets("Sheet1").range("A1").value = "Done!"
return
然后我导入 "xlwings.bas" 文件并编辑 VBA 代码以读取 PYTHONPATH = "C:\Users\bwamp\Desktop\module1\module1
,它指的是包含 "module1.py" 的子文件夹(完整路径:"C:\Users\bwamp\Desktop\module1\module1\module1.py",为清楚起见)。按 运行 macro1
按钮,出现以下错误:
错误
回溯(最近调用最后):
中的文件“”,第 1 行ImportError: 没有名为 'module1.py' 的模块; 'module1' 不是包
按 Ctrl+C 将此消息复制到剪贴板。
好的
知道我做错了什么吗?
您有两个错误:您需要导入没有 .py
结尾的模块:
Sub macro1()
RunPython ("import module1; module1.run_all()")
End Sub
它是 xw.Book.caller()
而不是 wb.Book.caller()
。
我有同样的错误。通过降级到 xlwings 版本 0.7.2
解决