So, I'm trying to use oct2py on Windows, like so:
from oct2py import octave
That's literally the only code I need to reproduce the error.
When I execute this, I get OSError: Octave Executable not found, please add to path or set"OCTAVE_EXECUTABLE" environment variable
. However, I have already set OCTAVE_EXECUTABLE
as a system variable, which points to "C:\Octave\Octave-4.4.1\bin\octave-cli-4.4.1.exe"
. Opening up the command line and running %OCTAVE_EXECUTABLE%
gives me the Octave CLI, so I know it's right.
I've tried rebooting. I've also tried adding the Octave folder to my Path and removing OCTAVE_EXECUTABLE
. Neither work.
EDIT: I've also tried using just octave-cli.exe
, and I've tried doing print(os.environ['OCTAVE_EXECUTABLE'])
, which returns the expected path.
Any ideas here?
In spite of what you mention in your comment:
It appears that, somewhere along the line, octave.exe got replaced with octave-cli.exe. There is no longer an octave.exe distributed with the Octave package. Others have successfully pointed OCTAVE_EXECUTABLE at octave-cli.exe
Recently more people had a similar issue and the oct2py
developers fixed it in the 5.0.0
version some hours ago. Actually they said:
Ah, I see what the issue is here. The convenience
octave
instance is created before you get a chance to set theexecutable
property. Given that fact, I think the only right answer is to remove the executable argument in favor of usingPATH
or theOCTAVE_EXECUTABLE
environment variable.
Anyway I had to adapt my code to make it work updating the environment variable 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')
There's two executables, octave-cli.exe and octave-cli-4.4.1.exe. What if you try the one without the version number? I only needed to restart the Spyder IDE for it to work
The documentation (http://blink1073.github.io/oct2py/source/installation.html) mentions oct2py may in fact be tryin to find a file called octave.exe, not octave-cli.exe
Try modifying your OCTAVE_EXECUTABLE to point to that instead. Though, in theory, if octave.exe and octave-cli.exe both sit in the same directory, adding to path should have worked ... but try anyway!
Not sure if this will help so long after the OP, but here is what worked for me:
import os
pathToExecutable = (
'D:\\wherever\\you\\put\\this\\octave-cli.exe'
)
os.environ['OCTAVE_EXECUTABLE'] = pathToExecutable
from oct2py import octave
I was running into a problem because, first of all, I failed to comprehend that I needed to install an Octave interpreter (I thought oct2py
came with one) and then since I am not an administrator I figured I would never be able to install it, but I worked it out!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With