所以,我试图在Windows上使用oct2py,如下所示:
from oct2py import octave
这实际上是我需要重现错误的唯一代码。
当我执行此操作时,我得到OSError: Octave Executable not found, please add to path or set"OCTAVE_EXECUTABLE" environment variable
。但是,我已经将OCTAVE_EXECUTABLE
设置为系统变量,它指向"C:\Octave\Octave-4.4.1\bin\octave-cli-4.4.1.exe"
。打开命令行并运行%OCTAVE_EXECUTABLE%
给了我Octave CLI,所以我知道它是正确的。
我试过重启。我也尝试将Octave文件夹添加到我的Path并删除OCTAVE_EXECUTABLE
。都没有工作。
编辑:我也尝试使用octave-cli.exe
,我已经尝试做print(os.environ['OCTAVE_EXECUTABLE'])
,它返回预期的路径。
这里有什么想法?
有两个可执行文件,octave-cli.exe和octave-cli-4.4.1.exe。如果您尝试没有版本号的那个怎么办?我只需要重新启动Spyder IDE就可以了
文档(http://blink1073.github.io/oct2py/source/installation.html)提及oct2py实际上可能是试图找到一个名为octave.exe的文件,而不是octave-cli.exe
尝试修改您的OCTAVE_EXECUTABLE以指向它。虽然,理论上,如果octave.exe和octave-cli.exe都位于同一目录中,添加到路径应该有效......但是无论如何都要尝试!
尽管你在评论中提到了什么:
看来,在该行的某处,octave.exe被octave-cli.exe取代。 ocave包中不再包含octave.exe。其他人已成功将octave-cli.exe指向OCTAVE_EXECUTABLE
最近更多的人有类似的问题,oct2py
开发人员几小时前在5.0.0
版本中修复了它。实际上他们said:
啊,我看到这里的问题是什么。在您有机会设置
octave
属性之前创建了方便的executable
实例。鉴于这一事实,我认为唯一正确的答案是删除可执行参数,转而使用PATH
或OCTAVE_EXECUTABLE
环境变量。
无论如何,我必须调整我的代码,使其更新环境变量OCTAVE_EXECUTABLE
:
import shutil
import os
import sys
if sys.platform == 'win32':
# os.environ['OCTAVE_EXECUTABLE'] = shutil.which('octave')
# >> I had to replace this with this other line >>
os.environ['OCTAVE_EXECUTABLE'] = shutil.which('octave-cli.exe')