【发布时间】:2018-11-29 18:16:56
【问题描述】:
我想从 Matlab 执行 Python 脚本(在 Windows 7 机器上)。必要的库安装在 Anaconda 虚拟环境中。从命令行运行脚本时,它运行完美。
从 Matlab 调用脚本时如下:
[status, commandOut] = system('C:/Users/user/AppData/Local/Continuum/anaconda3/envs/tf/python.exe test.py');
或者使用 shell 命令,我得到一个导入错误:
commandOut =
'Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
from . import multiarray
ImportError: DLL load failed: The specified path is invalid.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 2, in <module>
import numpy as np
File "C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\lib\site-packages\numpy\core\__init__.py", line 26, in <module>
raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
Original error was: DLL load failed: The specified path is invalid.
我已经将默认的 Matlab Python 版本更改为 Anaconda 环境,但没有更改:
version: '3.5'
executable: 'C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\python.exe'
library: 'C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf\python35.dll'
home: 'C:\Users\user\AppData\Local\Continuum\anaconda3\envs\tf'
isloaded: 1
只运行我的测试脚本而不导入 numpy 作品。重新加载 numpy (py.importlib.import_module('numpy');) 不起作用,但抛出了与以前相同的错误。
有人知道如何解决这个问题吗?
【问题讨论】:
-
您是否尝试按照错误消息的建议重新安装 numpy?
-
感谢您的建议,但正如我所写,numpy 安装没有问题,因为它从命令行运行得非常好。事实上,问题在于 Matlab 使用的是在使用 Anaconda 虚拟环境时未设置的路径变量。变通的解决方案是从虚拟环境中调用 Matlab(或手动将相应的路径添加到路径环境)。
标签: matlab numpy anaconda python-3.5 importerror