XLWings 无法识别导入的模块开口



我使用xlwings用Python脚本设置了一个电子表格工具。到目前为止一切都很好,一切都很好,我使用Spyder从Anaconda运行它。我可以从Excel(使用VBA连接)和Python运行脚本,两者都工作得很好。

现在我正试图改进它,我正在使用OpenTURNS模块的函数。所以我加了一行:import openturns as ot。OpenTURNS安装正确,我可以在Spyder中使用它的功能。

从Spyder我可以运行脚本并将结果写入Excel,但是如果我从Excel中运行它,我会得到错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "DecisionTool.py", line 12, in main
    import openturns as ot
ImportError: No module named openturns

所以出于某种原因,虽然Spyder可以找到openturns模块,但如果我做同样的事情并从Excel中运行它,它就找不到它。考虑到我仍然可以从Spyder运行一切,它应该是一些错误在Excel和Python之间的连接。然而,正如我所理解的,VBA调用python之后,python接管,所以我没有任何线索去哪里看。

当你通过xlwings VBA模块执行Python代码时,默认的Python解释器会启动,也就是说,如果你在命令提示符中输入python,就会启动。因此,首先要检查的是,如果您在命令提示符下启动python并尝试导入openturns会发生什么。如果找不到,那么Spyder要么是在使用另一个Python安装,要么是在某处添加openturns安装的路径。

如果Spyder使用与默认安装不同的安装,您可以更改默认安装,也可以在VBA模块中设置解释器的路径,如下所示。

最新更新