1

我使用 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 接管,所以我不知道在哪里看。希望任何人都可以提供帮助。

4

1 回答 1

1

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

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

于 2015-07-09T17:34:37.903 回答