3
votes

oct2py ne voit pas la variable d'environnement OCTAVE_EXECUTABLE (Windows)

Donc, j'essaye d'utiliser oct2py sous Windows, comme ceci:

from oct2py import octave

C'est littéralement le seul code dont j'ai besoin pour reproduire l'erreur.

Quand je exécutez ceci, j'obtiens OSError: Octave Executable not found, veuillez ajouter au chemin ou définir la variable d'environnement "OCTAVE_EXECUTABLE" . Cependant, j'ai déjà défini OCTAVE_EXECUTABLE comme variable système, qui pointe vers "C: \ Octave \ Octave-4.4.1 \ bin \ octave-cli- 4.4.1.exe ". Ouvrir la ligne de commande et exécuter % OCTAVE_EXECUTABLE% me donne la CLI Octave, donc je sais que c'est vrai.

J'ai essayé de redémarrer. J'ai également essayé d'ajouter le dossier Octave à mon chemin et de supprimer OCTAVE_EXECUTABLE . Ni l'un ni l'autre.

EDIT: J'ai aussi essayé d'utiliser simplement octave-cli.exe , et j'ai essayé de faire print (os.environ ['OCTAVE_EXECUTABLE' ' ]) , qui renvoie le chemin attendu.

Des idées ici?


0 commentaires

4 Réponses :


1
votes

Il existe deux exécutables, octave-cli.exe et octave-cli-4.4.1.exe. Et si vous essayez celui sans le numéro de version? Je n'avais besoin que de redémarrer Spyder IDE pour que cela fonctionne


2 commentaires

Merci pour la suggestion ... J'ai en fait essayé les deux, sans succès.


@JohnChrysostom qu'en est-il de l'octave.exe au lieu d'octave-cli?



1
votes

La documentation ( http://blink1073.github.io/oct2py/source/ installation.html ) mentionne oct2py peut en fait essayer de trouver un fichier appelé octave.exe, pas octave-cli.exe

Essayez de modifier votre OCTAVE_EXECUTABLE pour qu'il pointe vers cela à la place. Cependant, en théorie, si octave.exe et octave-cli.exe se trouvent tous les deux dans le même répertoire, l'ajout au chemin aurait dû fonctionner ... mais essayez quand même!


2 commentaires

Il semble que, quelque part le long de la ligne, octave.exe a été remplacé par octave-cli.exe. Il n'y a plus d'octave.exe distribué avec le paquet Octave. D'autres ont pointé avec succès OCTAVE_EXECUTABLE sur octave-cli.exe. Merci quand même.


@JohnChrysostom vaut peut-être encore la peine d'essayer de créer un lien symbolique (ou de renommer) d'octave-cli.exe en octave.exe. (PS. Grand honneur, votre éminence. Grand fan de la liturgie: p)



1
votes

Malgré ce que vous mentionnez dans votre commentaire:

Il semble que, quelque part le long de la ligne, octave.exe a été remplacé par octave-cli.exe. Il n'y a plus d'octave.exe distribué avec le paquet Octave. D'autres ont pointé avec succès OCTAVE_EXECUTABLE sur octave-cli.exe

Récemment, de plus en plus de personnes ont eu un problème similaire et les développeurs de oct2py l'ont corrigé dans la version 5.0.0 il y a quelques heures. En fait, ils ont dit :

Ah, je vois quel est le problème ici. L'instance de commodité octave est créée avant que vous n'ayez la possibilité de définir la propriété executable . Compte tenu de ce fait, je pense que la seule bonne réponse est de supprimer l'argument exécutable en faveur de l'utilisation de PATH ou de la variable d'environnement OCTAVE_EXECUTABLE .

De toute façon, j'ai dû adapter mon code pour le faire fonctionner en mettant à jour la variable d'environnement 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 commentaires

1
votes

Je ne sais pas si cela aidera si longtemps après l'OP, mais voici ce qui a fonctionné pour moi:

  1. Téléchargez Octave sous forme de fichier .7z et décompressez-le sur le disque dur
  2. Exécutez post-install.bat (à partir du dossier intitulé octave-5.2.0-w64 ou quelque chose de similaire)
  3. Redémarrez la machine Windows 10 (en raison de messages rencontrés lors de l'exécution de post-install.bat)
  4. Exécutez octave-firsttime.vbs
  5. Quittez le programme Octave
  6. Exécutez le code python suivant (dans 3.7.6)
import os

pathToExecutable = (
    'D:\\wherever\\you\\put\\this\\octave-cli.exe'
)
os.environ['OCTAVE_EXECUTABLE'] = pathToExecutable
from oct2py import octave

Je rencontrais un problème car, tout d'abord, je n'avais pas compris que j'avais besoin d'installer un interpréteur Octave (je pensais oct2py est venu avec un) et comme je ne suis pas administrateur, j'ai pensé que je ne pourrais jamais l'installer, mais je l'ai résolu!


1 commentaires

Donc, je commence juste à utiliser Octave, pour la première fois ... l'étape 5 ci-dessus n'est peut-être pas nécessaire. Tout ce que je sais, c'est que cela ne cause certainement pas d'erreur avec l'instruction d'importation; J'ai pensé que cela pourrait causer des problèmes si Python et GNU Octave appelaient tous les deux l'interpréteur en même temps, mais là encore, peut-être que ce ne serait pas le cas!