The snappy-conf.bat throws error in the verbose log:
failed with return code 30.
Please check the log file 'C:\Program Files\Python36\Lib\site-packages\snappy\snappyutil.log'.
at org.esa.snap.python.PyBridge.configureJpy(PyBridge.java:223)
at org.esa.snap.python.PyBridge.installPythonModule(PyBridge.java:147)
at org.esa.snap.rcp.cli.SnapArgsProcessor.processPython(SnapArgsProcessor.java:103)
at org.esa.snap.rcp.cli.SnapArgsProcessor.process(SnapArgsProcessor.java:49)
at org.netbeans.modules.sendopts.DefaultProcessor.process(DefaultProcessor.java:202)
at org.netbeans.spi.sendopts.Option$1.process(Option.java:387)
at org.netbeans.api.sendopts.CommandLine.process(CommandLine.java:317)
at org.netbeans.modules.sendopts.HandlerImpl.execute(HandlerImpl.java:62)
at org.netbeans.modules.sendopts.Handler.cli(Handler.java:69)
at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:234)
at org.netbeans.core.startup.CLICoreBridge.cli(CLICoreBridge.java:82)
at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:234)
at org.netbeans.CLIHandler$1.exec(CLIHandler.java:268)
at org.netbeans.CLIHandler.finishInitialization(CLIHandler.java:447)
at org.netbeans.MainImpl.finishInitialization(MainImpl.java:256)
at org.netbeans.Main.finishInitialization(Main.java:92)
at org.netbeans.core.startup.Main.start(Main.java:316)
at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:123)
at java.lang.Thread.run(Unknown Source)
Python configuration error: Python configuration failed.
Command ["C:\Program Files\Python36\python.exe" .\snappyutil.py --snap_home "C:\Program Files\snap" --java_module "C:\Program Files\snap\snap\modules\org-esa-snap-snap-python.jar" --force --log_file .\snappyutil.log --java_home "C:\Program Files\snap\jre" --req_arch amd64]
failed with return code 30.
Please check the log file 'C:\Program Files\Python36\Lib\site-packages\snappy\snappyutil.log'.
Error logged in the snappyutil.log is:
ERROR: Configuration failed
Traceback (most recent call last):
File ".\snappyutil.py", line 261, in _main
force=args.force)
File ".\snappyutil.py", line 210, in _configure_snappy
__import__('snappy')
File "C:\Program Files\Python36\Lib\site-packages\snappy\..\snappy\__init__.py", line 63, in <module>
jpyutil.preload_jvm_dll()
File "C:\Program Files\Python36\Lib\site-packages\snappy\jpyutil.py", line 344, in preload_jvm_dll
return ctypes.CDLL(jvm_dll_file, mode=ctypes.RTLD_GLOBAL)
File "C:\Program Files\Python36\lib\ctypes\__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
How can I fix it? Any help will be appreciated. Thanks
@marpet Thanks for the heads up. But it works with python 3.6. I use snappy with python 3.6 in my personal laptop and it works fine. There was no error at the time of configuration as well.
Mmm?? Yes it can work, but it is not guaranteed. At least I haven’t tried.
Do you use a different SNAP version on your laptop?
Maybe it helps, if you delete the .snap directory in your home folder.
I confirm that it doesn’t work with python36, as mentioned in the docs but it works on python34.
With python36 I get the following error when I try to import snappy:
import jpy ImportError: Module use of python34.dll conflicts with this version of Python.
It’s not an issue for me to work on python34 but I’m just wondering (the end-of-life for Python 3.4 is March 2019), is it because of jpy that snappy wasn’t upgraded to support python36?
It could be that not all pieces share the same bitness.
As you are on a 64-bit system all software should be 64 bit. Maybe the Python instance you have is only 32-bit.
Could you check this, please?
I don’t really know what is wrong. It must be something with the DLL of the JVM.
It is named jvm.dll and is usually located in “C:\Program Files\snap\jre\bin\server”. It seems that it is found but cannot be loaded. For whatever reason.
the problem is that jpyconfig is wrongly created, so for example if JDK_HOME is C:\Program Files\Java\jdk1.8.0_241
in jpyconfig.py the jvm_dll variable is set to C:\Program Files\Java\jdk1.8.0\jre\bin\server\jvm.dll
so it is missing “_241”, the bug needs to be fixed in jpy project but a workaround would be to go to jpyconfig.py file and set right jvm_dll manually or just use a JDK_HOME without underscores