所以,我正在尝试在Windows上使用oct2py,如下所示:
from oct2py import octave
从字面上看,这是我重现错误所需的唯一代码。
当我执行这个时,我得到OSError: Octave Executable not found, please add to path or set"OCTAVE_EXECUTABLE" environment variable
.但是,我已经将OCTAVE_EXECUTABLE
设置为系统变量,它指向 "C:OctaveOctave-4.4.1binoctave-cli-4.4.1.exe"
.打开命令行并运行%OCTAVE_EXECUTABLE%
给了我Octave CLI,所以我知道这是对的。
我试过重新启动。我还尝试将 Octave 文件夹添加到我的路径并删除OCTAVE_EXECUTABLE
.两者都不行。
编辑:我也尝试只使用octave-cli.exe
,我尝试做print(os.environ['OCTAVE_EXECUTABLE'])
,它返回预期的路径。
这里有什么想法吗?
您在评论中提到了以下内容:
似乎,沿着这条线的某个地方,八度.exe被八度.exe取代了。不再有八度.exe与八度包一起分发。其他人已经成功地将OCTAVE_EXECUTABLE指向八度.exe
最近,越来越多的人遇到了类似的问题,oct2py
开发人员在几个小时前在5.0.0
版本中修复了它。实际上他们说:
啊,我明白这里的问题了。方便
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')
可执行文件,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以指向该内容。虽然,从理论上讲,如果八度.exe和八度 cli.exe都位于同一个目录中,添加到路径应该有效......但无论如何都要尝试!
不确定这在 OP 后这么长时间是否有帮助,但以下是对我有用的:
- 将 Octave 下载为.7z文件并将其解压缩到硬盘
- 运行安装后.bat(从标题为 octave-5.2.0-w64 或类似内容的文件夹中(
- 重新启动Windows 10计算机(由于在安装后运行期间遇到消息.bat(
- 运行八度-第一次.vbs
- 退出八度程序
- 执行以下 python 代码(在 3.7.6 中(
import os
pathToExecutable = (
'D:\wherever\you\put\this\octave-cli.exe'
)
os.environ['OCTAVE_EXECUTABLE'] = pathToExecutable
from oct2py import octave
我遇到了一个问题,因为首先,我无法理解我需要安装一个Octave解释器(我以为oct2py
附带了一个(,然后因为我不是管理员,我想我永远无法安装它,但我解决了!
使用 Windows 10 和本地用户安装 Octave 6.2.0 创建新的用户环境 变量:
OCTAVE_EXECUTABLE
并设置为:%LOCALAPPDATA%\Programs\GNU Octave\Octave-6.2.0\mingw64\bin\octave-cli.exe
为我工作。我不需要管理员权限。