[英]oct2py isn't seeing OCTAVE_EXECUTABLE environment variable (Windows)
所以,我试图在 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.exe 被替换为八度角cli.exe。 不再随 Octave 包分发 Octave.exe。 其他人已成功将 OCTAVE_EXECUTABLE 指向 Octave-cli.exe
最近越来越多的人遇到了类似的问题,几个小时前oct2py
开发人员在5.0.0
版本中修复了它。 其实他们说:
啊,我明白问题出在哪里了。 在您有机会设置
executable
属性之前,便创建了方便的octave
实例。 鉴于这一事实,我认为唯一正确的答案是删除可执行参数以支持使用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 实际上可能是试图找到一个名为八度.exe的文件,而不是八度-cli.exe
尝试修改您的 OCTAVE_EXECUTABLE 以指向它。 虽然理论上,如果八度音程.exe 和八度音程-cli.exe 都位于同一目录中,添加到路径应该可以工作......但无论如何都要尝试!
不确定这是否会在 OP 之后这么久有所帮助,但以下是对我有用的方法:
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
为我工作。 我不需要管理员权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.