oct2py не видит переменную среды OCTAVE_EXECUTABLE (Windows)

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

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

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

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

5 ответов

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

Похоже, что где-то вдоль, 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')

Есть два исполняемых файла: 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 находятся в одном каталоге, добавление к пути должно сработать... но попробуйте в любом случае!

Не уверен, что это поможет так долго после OP, но вот что сработало для меня:

  1. Загрузите Octave как файл.7z и распакуйте его на жесткий диск
  2. Запустите post-install.bat (из папки octave-5.2.0-w64 или чего-то подобного)
  3. Перезагрузите компьютер с Windows 10 (из-за сообщений, обнаруженных во время запуска post-install.bat)
  4. Запустите octave-firsttime.vbs
  5. Выйти из программы Octave
  6. Выполните следующий код 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

работал у меня. Мне для этого не понадобились права админа.

Другие вопросы по тегам