python - oct2py 没有看到 OCTAVE_EXECUTABLE 环境变量(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 文件夹添加到我的路径中并删除OCTAVE_EXECUTABLE
. 都不工作。
编辑:我也试过使用 just octave-cli.exe
,我试过做print(os.environ['OCTAVE_EXECUTABLE'])
,它返回预期的路径。
这里有什么想法吗?
解决方案
尽管您在评论中提到了什么:
似乎在某个地方,octave.exe 被 octave-cli.exe 取代。不再有随 Octave 软件包分发的 octave.exe。其他人已成功将 OCTAVE_EXECUTABLE 指向 octave-cli.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')
推荐阅读
- react-native - React Native / Redux - 中间件中的商店为空
- python - Python .. 访问默认排序功能?
- java - 如何在 Android 上从 ASP.NET 站点下载文件?
- bash - 在子目录列表上迭代 shell 脚本
- python - 模块“networkx”没有属性“add_nodes_from”
- apache-flink - 为什么检查点对延迟的影响如此之大?
- python - NoReverseMatch for '' 关键字参数 '' 未找到
- java - 如何在扩展类中排除重新键入相同的参数
- java - 如何检查 Map 中有多少个 HashSet
> - swagger - 限制 swagger 文档的可见性