4

我正在使用 Python 2.6、Excel 2007 Professional 和最新版本的 PyXLL。在 PyXLL 中加载具有

import scipy

抛出异常并且未加载模块。有没有人能够在 PyXLL 中加载 Scipy?会不会是版本问题?抛出的异常是:

2010-12-21 17:21:30,915 - ERROR : Error importing 'options': DLL load failed: A dynamic link library (DLL) initialization routine failed.
2010-12-21 17:21:30,915 - ERROR : Traceback (most recent call last):
2010-12-21 17:21:30,915 - ERROR :   File "pyxll", line 402, in _open
2010-12-21 17:21:30,915 - ERROR :   File "C:\Dev\libs\pyxll\examples\options.py", line 15, in <module>
2010-12-21 17:21:30,915 - ERROR :     import scipy
2010-12-21 17:21:30,915 - ERROR :   File "C:\Python26\lib\site-packages\scipy\__init__.py", line 78, in <module>
2010-12-21 17:21:30,915 - ERROR :     from numpy import show_config as show_numpy_config
2010-12-21 17:21:30,915 - ERROR :   File "C:\Python26\lib\site-packages\numpy\__init__.py", line 138, in <module>
2010-12-21 17:21:30,915 - ERROR :     import add_newdocs
2010-12-21 17:21:30,915 - ERROR :   File "C:\Python26\lib\site-packages\numpy\add_newdocs.py", line 9, in <module>
2010-12-21 17:21:30,930 - ERROR :     from lib import add_newdoc
2010-12-21 17:21:30,930 - ERROR :   File "C:\Python26\lib\site-packages\numpy\lib\__init__.py", line 4, in <module>
2010-12-21 17:21:30,930 - ERROR :     from type_check import *
2010-12-21 17:21:30,930 - ERROR :   File "C:\Python26\lib\site-packages\numpy\lib\type_check.py", line 8, in <module>
2010-12-21 17:21:30,930 - ERROR :     import numpy.core.numeric as _nx
2010-12-21 17:21:30,930 - ERROR :   File "C:\Python26\lib\site-packages\numpy\core\__init__.py", line 5, in <module>
2010-12-21 17:21:30,930 - ERROR :     import multiarray
2010-12-21 17:21:30,930 - ERROR : ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
4

1 回答 1

7

我怀疑这是因为您使用的是 NumPy 的 Enthought 发行版。当前可用版本存在一个问题,即无法嵌入 Excel。

要解决此问题,您需要使用 cff 资源管理器或任何其他 PE 编辑器从 numpy pyd 文件中删除清单资源。

Enthought 意识到这一点并正在研究这个问题。

您可以从 numpy 网站下载的版本适用于 PyXLL。

如果您有任何其他问题,请随时发送电子邮件至 support@pyxll.com 或在 PyXLL 论坛上发帖。

问候,

托尼

于 2010-12-21T23:34:45.510 回答