oct2py не видит переменную среды OCTAVE_EXECUTABLE (Windows) - PullRequest
0 голосов
/ 12 февраля 2019

Итак, я пытаюсь использовать oct2py в Windows, вот так:

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% дает мне CLI Octave, так что я знаю, что это правильно.

Я попытался перезагрузиться.Я также попытался добавить папку Octave в свой путь и удалить OCTAVE_EXECUTABLE.Ни одна из этих работ.

РЕДАКТИРОВАТЬ: я также пытался использовать только octave-cli.exe, и я пытался сделать print(os.environ['OCTAVE_EXECUTABLE']), который возвращает ожидаемый путь.

Есть идеи здесь?

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

В документации (http://blink1073.github.io/oct2py/source/installation.html) упоминается, что oct2py на самом деле может пытаться найти файл с именем octave.exe, а не octave-cli.exe

Попробуйте изменить OCTAVE_EXECUTABLE, чтобы указать на него вместо этого.Хотя теоретически, если octave.exe и octave-cli.exe находятся в одном и том же каталоге, добавление к пути должно сработать ... но попробуйте в любом случае!

0 голосов
/ 03 мая 2019

Несмотря на то, что вы упоминаете в своем комментарии:

Похоже, что где-то вдоль строки файл octave.exe был заменен на octave-cli.exe.Больше нет octave.exe, распространяемого вместе с пакетом Octave.Другие успешно указали 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')
0 голосов
/ 12 февраля 2019

Есть два исполняемых файла: octave-cli.exe и octave-cli-4.4.1.exe.Что делать, если вы попробуете тот, у которого нет номера версии?Мне нужно было только перезапустить Spyder IDE, чтобы он заработал

...