xlwings无法识别导入的模块openturns

时间:2015-07-09 15:13:12

标签: python excel vba excel-vba 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接管,所以我没有任何线索在哪里看。 希望任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:0)

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

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