Esa-snappy Python Configuration Error

Hi All,
I’ve been having significant trouble trying to install esa-snappy on my Mac (OSX 13.6.7) with Python 3.10.2 and SNAP (10.0.0).

When I run the installer:

$ ./snappy-conf /Library/Frameworks/Python.framework/Versions/3.10/Python

I get back this error:

OpenJDK 64-Bit Server VM warning: Option AggressiveOpts was deprecated in version 11.0 and will likely be removed in a future release.

WARNING: An illegal reflective access operation has occurred

WARNING: Illegal reflective access by org.netbeans.ProxyURLStreamHandlerFactory (file:/Applications/esa-snap/platform/lib/boot.jar) to field java.net.URL.handler

WARNING: Please consider reporting this to the maintainers of org.netbeans.ProxyURLStreamHandlerFactory

WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations

WARNING: All illegal access operations will be denied in a future release

Configuring ESA SNAP-Python interface…

Configuration failed!

Error: Python configuration error

Full stack trace:

No stack trace is actually provided.

However, this script does build a /user/.snap/snap-python folder.

Any ideas?

Hi!

First of all, you may need to update from SNAP 10.0.0 → 10.0.1 on the plug-in section, clicking on checking for updates.

Secondly, I think for your command that you are indicating the python folder, but you need to indicate the python3 executable itself.

In case this don’t work, I recommend you to check the logging files, but I don’t know where are they on Mac. On Linux the default path is ~/.snap/system/var/log

Hope that this can help.

Regards,

Álvaro

Hi Álvaro! Thanks for the advice!

I’ve tried to upgrade SNAP to 10.0.1, but when I go to the updater, it says I’m fully up to date. Not sure if this is an issue with the newest version of OSX or if there’s some work around to get to 10.0.1 without the updater.

As for the executable, the file path referenced is to an executable - python is the name of the executable.

Lastly, I just checked the logs associated with the .snap folder and have included them below. Let me know if you have any idea of how to fix this! Also, paging @dolaf for any advice they may have! Thanks, everyone!

INFO [org.esa.snap]: Configuring SNAP-Python interface…
Executing command: [/Library/Frameworks/Python.framework/Versions/3.10/Python ./snappyutil.py --snap_home /Applications/esa-snap --java_module /Applications/esa-snap/snap/modules/eu-esa-snap-esa-snappy.jar --force --log_file ./snappyutil.log --jvm_max_mem 5G --java_home /Applications/esa-snap/.install4j/jre.bundle/Contents/Home --req_arch x86_64]
java.lang.Exception: Python configuration error
at eu.esa.snap.snappy.Configurator.doConfig(Configurator.java:37)
at eu.esa.snap.snappy.EsaSnappyArgsProcessor.applyConfiguration(EsaSnappyArgsProcessor.java:39)
at eu.esa.snap.snappy.EsaSnappyArgsProcessor.process(EsaSnappyArgsProcessor.java:20)
at org.netbeans.modules.sendopts.DefaultProcessor.process(DefaultProcessor.java:192)
at org.netbeans.spi.sendopts.Option$1.process(Option.java:362)
at org.netbeans.api.sendopts.CommandLine.process(CommandLine.java:336)
at org.netbeans.modules.sendopts.HandlerImpl.execute(HandlerImpl.java:37)
at org.netbeans.modules.sendopts.Handler.cli(Handler.java:44)
at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:209)
at org.netbeans.core.startup.CLICoreBridge.cli(CLICoreBridge.java:57)
at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:209)
at org.netbeans.CLIHandler$1.exec(CLIHandler.java:243)
at org.netbeans.CLIHandler.finishInitialization(CLIHandler.java:422)
at org.netbeans.MainImpl.finishInitialization(MainImpl.java:231)
at org.netbeans.Main.finishInitialization(Main.java:67)
at org.netbeans.core.startup.Main.start(Main.java:291)
at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: Python configuration failed.
Command [/Library/Frameworks/Python.framework/Versions/3.10/Python ./snappyutil.py --snap_home /Applications/esa-snap --java_module /Applications/esa-snap/snap/modules/eu-esa-snap-esa-snappy.jar --force --log_file ./snappyutil.log --jvm_max_mem 5G --java_home /Applications/esa-snap/.install4j/jre.bundle/Contents/Home --req_arch x86_64]
failed with return code 126.
Please check the log file ‘/Users/myname/.snap/snap-python/esa_snappy/snappyutil.log’.
at eu.esa.snap.snappy.PyBridge.configureJpy(PyBridge.java:275)
at eu.esa.snap.snappy.PyBridge.installPythonModule(PyBridge.java:164)
at eu.esa.snap.snappy.Configurator.doConfig(Configurator.java:32)
… 17 more
INFO [org.openide.awt.Toolbar]: Too long AWTTask: 747 ms for org.openide.awt.Toolbar$Folder@8e45cce(FolderList{MultiFileObject@7461def2[Toolbars/UndoRedo]})
INFO [org.openide.awt.Toolbar]: Too long AWTTask: 1,121 ms for org.openide.awt.Toolbar$Folder@669fb21f(FolderList{MultiFileObject@fb97f99[Toolbars/Tool Windows]})

Hello,

I’ve tried to upgrade SNAP to 10.0.1, but when I go to the updater, it says I’m fully up to date.

yes, you should be up to date then. You can double-check in SNAP Desktop if you go to Tools → Plugins → Installed and click on ESA SNAPPY, then you should see ‘Version: 10.0.1’ on the info panel on the right.

As for the executable, the file path referenced is to an executable - python is the name of the executable.

Your log states that the command for running the configuration failed with return code 126. According to the Unix bash man pages ( https://www.man7.org/linux/man-pages/man1/bash.1.html) , this happens if a command is found but is not executable. Thus, something seems to be wrong with the

/Library/Frameworks/Python.framework/Versions/3.10/Python ...

as Alvaro was already assuming. - Can you run this command with any other Python scripts?

Cheers
Olaf

1 Like

Thanks @dolaf for the advice! I realized it was the wrong executable, but I still have issues and I really appreciate your help!
When running:
$ ./snappy-conf /Library/Frameworks/Python.framework/Versions/3.10/bin/python3

I still get:

OpenJDK 64-Bit Server VM warning: Option AggressiveOpts was deprecated in version 11.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.netbeans.ProxyURLStreamHandlerFactory (file:/Applications/esa-snap/platform/lib/boot.jar) to field java.net.URL.handler
WARNING: Please consider reporting this to the maintainers of org.netbeans.ProxyURLStreamHandlerFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Configuring ESA SNAP-Python interface...
Configuration failed!
Error: Python configuration error
Full stack trace:

The new error in .snap’s log says:

java.lang.Exception: Python configuration error
	at eu.esa.snap.snappy.Configurator.doConfig(Configurator.java:37)
	at eu.esa.snap.snappy.EsaSnappyArgsProcessor.applyConfiguration(EsaSnappyArgsProcessor.java:39)
	at eu.esa.snap.snappy.EsaSnappyArgsProcessor.process(EsaSnappyArgsProcessor.java:20)
	at org.netbeans.modules.sendopts.DefaultProcessor.process(DefaultProcessor.java:192)
	at org.netbeans.spi.sendopts.Option$1.process(Option.java:362)
	at org.netbeans.api.sendopts.CommandLine.process(CommandLine.java:336)
	at org.netbeans.modules.sendopts.HandlerImpl.execute(HandlerImpl.java:37)
	at org.netbeans.modules.sendopts.Handler.cli(Handler.java:44)
	at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:209)
	at org.netbeans.core.startup.CLICoreBridge.cli(CLICoreBridge.java:57)
	at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:209)
	at org.netbeans.CLIHandler$1.exec(CLIHandler.java:243)
	at org.netbeans.CLIHandler.finishInitialization(CLIHandler.java:422)
	at org.netbeans.MainImpl.finishInitialization(MainImpl.java:231)
	at org.netbeans.Main.finishInitialization(Main.java:67)
	at org.netbeans.core.startup.Main.start(Main.java:291)
	at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: Python configuration failed.
Command [/Library/Frameworks/Python.framework/Versions/3.10/bin/python3 ./snappyutil.py --snap_home /Applications/esa-snap --java_module /Applications/esa-snap/snap/modules/eu-esa-snap-esa-snappy.jar --force --log_file ./snappyutil.log --jvm_max_mem 5G --java_home /Applications/esa-snap/.install4j/jre.bundle/Contents/Home --req_arch x86_64]
failed with return code 10.
Please check the log file '/Users/myname/.snap/snap-python/esa_snappy/snappyutil.log'.
	at eu.esa.snap.snappy.PyBridge.configureJpy(PyBridge.java:275)
	at eu.esa.snap.snappy.PyBridge.installPythonModule(PyBridge.java:164)
	at eu.esa.snap.snappy.Configurator.doConfig(Configurator.java:32)
	... 17 more
INFO [org.openide.awt.Toolbar]: Too long AWTTask: 1,192 ms for org.openide.awt.Toolbar$Folder@258f6844(FolderList{MultiFileObject@4177cba8[Toolbars/Tool Windows]})

snappyutil.log says:

INFO: Installing from Java module '/Applications/esa-snap/snap/modules/eu-esa-snap-esa-snappy.jar'
INFO: Installing jpy...
ERROR: The module 'jpy' is required to run snappy, but no binary 'jpy' wheel matching the pattern
'jpy-{version}-cp310-{abi_tag}-macosx_10_9_universal2.whl' could be found.
You can try to build a 'jpy' wheel yourself, then copy it into
"/Users/myname/.snap/snap-python/esa_snappy", and then run the configuration again.
Unzip the jpy sources in /Users/myname/.snap/snap-python/esa_snappy/jpy-<version>.zip, then
  $ cd jpy-<version>
  $ python setup.py bdist_wheel
  $ cp dist/*.whl "/Users/myname/.snap/snap-python/esa_snappy"
Or get the source code from https://github.com/bcdev/jpy and follow the build instructions:
  $ git clone https://github.com/bcdev/jpy.git
  $ cd jpy
ERROR: Configuration failed with exit code 10

Which is odd because I thought I had read in the instructions that jpy is no longer needed. Either way, after I git cloned and attempted to run:

python3.10 setup.py bdist_wheel

I got 40 warnings in the output ending with the below error. If you would like to see the entire output of warnings, I’ve included that too, at the bottom.

error: command '/usr/bin/clang' failed with exit code 1

Entirety of output:

src/main/c/jni/org_jpy_PyLib.c:167:31: warning: passing 'const wchar_t *' (aka 'const int *') to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
                PyMem_RawFree(pythonHome);
                              ^~~~~~~~~~
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/cpython/pymem.h:8:38: note: passing argument to parameter 'ptr' here
PyAPI_FUNC(void) PyMem_RawFree(void *ptr);
                                     ^
src/main/c/jni/org_jpy_PyLib.c:184:27: warning: passing 'const wchar_t *' (aka 'const int *') to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
            PyMem_RawFree(pythonHome);
                          ^~~~~~~~~~
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/cpython/pymem.h:8:38: note: passing argument to parameter 'ptr' here
PyAPI_FUNC(void) PyMem_RawFree(void *ptr);
                                     ^
src/main/c/jni/org_jpy_PyLib.c:252:17: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
                JPy_BEGIN_GIL_STATE
                ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:283:13: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
            JPy_BEGIN_GIL_STATE
            ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:331:9: error: call to undeclared function 'JPy_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        JPy_free();
        ^
src/main/c/jni/org_jpy_PyLib.c:329:26: warning: unused variable 'state' [-Wunused-variable]
        PyGILState_STATE state = PyGILState_Ensure();
                         ^
src/main/c/jni/org_jpy_PyLib.c:371:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:437:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:664:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:791:16: warning: incompatible pointer to integer conversion returning 'void *' from a function with result type 'jlong' (aka 'long') [-Wint-conversion]
        return NULL;
               ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include/stddef.h:89:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
src/main/c/jni/org_jpy_PyLib.c:796:101: warning: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    result = executeInternal(jenv, jLibClass, jStart, jGlobals, jLocals, (DoRun)pyRunStringWrapper, codeChars);
                                                                                                    ^~~~~~~~~
src/main/c/jni/org_jpy_PyLib.c:657:128: note: passing argument to parameter 'runArg' here
jlong executeInternal(JNIEnv* jenv, jclass jLibClass, jint jStart, jobject jGlobals, jobject jLocals, DoRun runFunction, void *runArg) {
                                                                                                                               ^
src/main/c/jni/org_jpy_PyLib.c:874:9: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
        JPy_BEGIN_GIL_STATE
        ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:900:9: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
        JPy_BEGIN_GIL_STATE
        ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:928:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:948:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:973:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:994:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1020:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1051:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1074:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1076:14: warning: incompatible pointer types assigning to 'PyObject *' (aka 'struct _object *') from 'PyTypeObject *' (aka 'struct _typeobject *') [-Wincompatible-pointer-types]
    pyObject = ((PyObject*) objId)->ob_type;
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main/c/jni/org_jpy_PyLib.c:1096:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1122:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1148:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1174:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1200:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1226:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1252:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1278:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1304:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1331:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1364:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1393:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1456:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1497:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1519:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1555:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1612:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1656:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1691:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
src/main/c/jni/org_jpy_PyLib.c:1714:5: warning: 'PyEval_InitThreads' is deprecated [-Wdeprecated-declarations]
    JPy_BEGIN_GIL_STATE
    ^
src/main/c/jni/org_jpy_PyLib.c:58:107: note: expanded from macro 'JPy_BEGIN_GIL_STATE'
    #define JPy_BEGIN_GIL_STATE  { PyGILState_STATE gilState; if (!JPy_InitThreads) {JPy_InitThreads = 1; PyEval_InitThreads(); PyEval_SaveThread(); } gilState = PyGILState_Ensure();
                                                                                                          ^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/ceval.h:122:1: note: 'PyEval_InitThreads' has been explicitly marked deprecated here
Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
^
/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10/pyport.h:513:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                     ^
40 warnings and 1 error generated.
error: command '/usr/bin/clang' failed with exit code 1

Hi,

I don’t have any idea about what are the new warnings.

As you say, jpy installation must be not necessary, but I think that maybe it can fix the problem because your log says it:

Unzip the jpy sources in /Users/myname/.snap/snap-python/esa_snappy/jpy-<version>.zip, then
  $ cd jpy-<version>
  $ python setup.py bdist_wheel
  $ cp dist/*.whl "/Users/myname/.snap/snap-python/esa_snappy"
Or get the source code from https://github.com/bcdev/jpy and follow the build instructions:
  $ git clone https://github.com/bcdev/jpy.git
  $ cd jpy

Hope you can fix the problem soon.

Regards,

Álvaro.

Hello,

thanks for your detailed report:

I thought I had read in the instructions that jpy is no longer needed.

A manual installation of jpy by the user is basically no longer needed, because the recent jpy versions (including the 0.13.0 used with SNAP 10) now provide pre-built jpy wheels which are shipped with the esa_snappy module. This is of great advantage compared to previous snappy versions. So jpy is still used by the framework. However, your error message ‘no binary 'jpy' wheel matching...’ indicates that there is no such wheel provided for your combination of jpy version, Python version and your specific Mac OS architecture.

To further investigate this and possibly find a workaround, could you please provide some information on your Mac OS system and architecture? Especially, the information returned from your Python via

>>> import distutils.util
>>> print (distutils.util.get_platform())

would be of interest.

Regarding the hint: ‘You can try to build a ‘jpy’ wheel yourself…’ : this may work (or may not, as in your case). We no longer recommend this approach as it turned out to be error-prone and user-unfriendly. (Note that, if you want to try anyway, you should have checked out release v0.13.0 from the jpy-consortium Github). The error you observe ‘error: command '/usr/bin/clang' failed with exit code 1’ illustrates the inconvenience. A quick Google search indicates that this error is frequently (at least occasionally) observed by Mac users while trying to install various kind of software, thus it seems to have nothing to do with jpy or esa_snappy.

For the moment we can just recommend that you switch to another platform if possible. We are sorry for the inconvenience.

Thanks again for the assistance @dolaf! I’ll try and find a workaround and maybe spin up a VM for the time being.
The output of distutils platform function is:

macosx-10.9-x86_64

Let me know if there’s any other info I can provide to help sort out this issue!

Hi, thanks again for the info. However, the output is strange, compared to your error message

no binary 'jpy' wheel matching the pattern jpy-{version}-cp310-{abi_tag}-macosx_10_9_universal2.whl could be found’.

I am wondering where the term ‘universal2’ is introduced, replacing the x86_64. - Could you provide a full listing (ls -lR) of your ~/.snap/snap-python/esa-snappy directory?

Hi @dolaf!
I think that may have been just a mistake on my part - I tried to build the wheel with a different version of python (3.7) than I used for ./snappy-conf (3.10) because I read on the docs that jpy only works up to 3.8. I get the universal architecture when I run it with Python3.10. Just to make sure everything is in order, I deleted the .snap folder and re-ran my ./snap-conf with Python 3.10.

With Python 3.10, the output of distutils.util.get_platform() is:

macosx-10.9-universal2

However, in case it’s helpful, I have also included the results of ls -lR:

total 80
-rw-r--r--@  1 myname  staff  14938 May 13 11:04 __init__.py
drwxr-xr-x@ 10 myname  staff    320 May 13 11:31 examples
drwxr-xr-x  21 myname  staff    672 Jul 25 09:31 jpy
-rw-r--r--@  1 myname  staff    656 May 13 11:04 setup.py
-rw-r--r--@  1 myname  staff    871 Jul 25 09:30 snappyutil.log
-rw-r--r--@  1 myname  staff  12948 May 13 11:04 snappyutil.py
drwxr-xr-x@  4 myname  staff    128 May 13 11:31 testdata
drwxr-xr-x@  6 myname  staff    192 May 13 11:31 tests

./examples:
total 64
-rw-r--r--@ 1 myname  staff  1998 May 13 11:04 snappy_bmaths.py
-rw-r--r--@ 1 myname  staff  1756 May 13 11:04 snappy_flh.py
-rw-r--r--@ 1 myname  staff  1739 May 13 11:04 snappy_geo_roi.py
-rw-r--r--@ 1 myname  staff  2481 May 13 11:04 snappy_ndvi.py
-rw-r--r--@ 1 myname  staff  2281 May 13 11:04 snappy_ndvi_with_masks.py
-rw-r--r--@ 1 myname  staff  1015 May 13 11:04 snappy_reader_writer_formats.py
-rw-r--r--@ 1 myname  staff  1089 May 13 11:04 snappy_subset.py
-rw-r--r--@ 1 myname  staff  3743 May 13 11:04 snappy_write_image.py

./jpy:
total 224
-rw-r--r--   1 myname  staff   6756 Jul 25 09:31 CHANGES.md
-rw-r--r--   1 myname  staff  11357 Jul 25 09:31 LICENSE.txt
-rw-r--r--   1 myname  staff    327 Jul 25 09:31 MANIFEST.in
-rw-r--r--   1 myname  staff   5157 Jul 25 09:31 README.md
drwxr-xr-x   3 myname  staff     96 Jul 25 09:31 __pycache__
-rw-r--r--   1 myname  staff   6625 Jul 25 09:31 appveyor.yml
drwxr-xr-x   4 myname  staff    128 Jul 25 09:31 build
drwxr-xr-x   4 myname  staff    128 Jul 25 09:31 ci
drwxr-xr-x  13 myname  staff    416 Jul 25 09:31 doc
-rw-r--r--   1 myname  staff  11434 Jul 25 09:31 ez_setup.py
-rw-r--r--   1 myname  staff  25257 Jul 25 09:31 jpyutil.py
-rw-r--r--   1 myname  staff   6910 Jul 25 09:31 pom.xml
drwxr-xr-x   9 myname  staff    288 Jul 25 09:31 pysobug
-rw-r--r--   1 myname  staff    110 Jul 25 09:31 setup.cfg
-rw-r--r--   1 myname  staff  12919 Jul 25 09:31 setup.py
drwxr-xr-x   4 myname  staff    128 Jul 25 09:31 src
-rw-r--r--   1 myname  staff   2659 Jul 25 09:31 winbuild.cmd

./jpy/__pycache__:
total 40
-rw-r--r--  1 myname  staff  19219 Jul 25 09:31 jpyutil.cpython-310.pyc

./jpy/build:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 lib.macosx-10.9-universal2-cpython-310
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 temp.macosx-10.9-universal2-cpython-310

./jpy/build/lib.macosx-10.9-universal2-cpython-310:
total 56
-rw-r--r--  1 myname  staff  25257 Jul 25 09:31 jpyutil.py

./jpy/build/temp.macosx-10.9-universal2-cpython-310:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 src

./jpy/build/temp.macosx-10.9-universal2-cpython-310/src:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 main

./jpy/build/temp.macosx-10.9-universal2-cpython-310/src/main:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 c

./jpy/build/temp.macosx-10.9-universal2-cpython-310/src/main/c:
total 0
drwxr-xr-x  2 myname  staff  64 Jul 25 09:31 jni

./jpy/build/temp.macosx-10.9-universal2-cpython-310/src/main/c/jni:
total 0

./jpy/ci:
total 0
drwxr-xr-x  3 myname  staff   96 Jul 25 09:31 appveyor
drwxr-xr-x  5 myname  staff  160 Jul 25 09:31 travis

./jpy/ci/appveyor:
total 8
-rw-r--r--  1 myname  staff  100 Jul 25 09:31 dump-dlls.py

./jpy/ci/travis:
total 24
-rw-r--r--  1 myname  staff  1159 Jul 25 09:31 before_script.sh
-rw-r--r--  1 myname  staff   537 Jul 25 09:31 run.sh
-rwxr-xr-x  1 myname  staff   257 Jul 25 09:31 upload-to-ftp.sh

./jpy/doc:
total 160
-rw-r--r--  1 myname  staff   6750 Jul 25 09:31 Makefile
drwxr-xr-x  4 myname  staff    128 Jul 25 09:31 _static
-rw-r--r--  1 myname  staff   8184 Jul 25 09:31 conf.py
-rw-r--r--  1 myname  staff    578 Jul 25 09:31 index.rst
-rw-r--r--  1 myname  staff  11248 Jul 25 09:31 install.rst
-rw-r--r--  1 myname  staff   5102 Jul 25 09:31 intro.rst
-rw-r--r--  1 myname  staff   6453 Jul 25 09:31 make.bat
-rw-r--r--  1 myname  staff   3340 Jul 25 09:31 modify.rst
-rw-r--r--  1 myname  staff  23758 Jul 25 09:31 reference.rst
-rw-r--r--  1 myname  staff   1055 Jul 25 09:31 tutorial.rst

./jpy/doc/_static:
total 0
drwxr-xr-x   4 myname  staff  128 Jul 25 09:31 figures
drwxr-xr-x  15 myname  staff  480 Jul 25 09:31 java-apidocs

./jpy/doc/_static/figures:
total 32
-rw-r--r--  1 myname  staff  11499 Jul 25 09:31 deployment.png
-rw-r--r--  1 myname  staff    325 Jul 25 09:31 deployment.puml

./jpy/doc/_static/java-apidocs:
total 240
-rw-r--r--  1 myname  staff   1660 Jul 25 09:31 allclasses-frame.html
-rw-r--r--  1 myname  staff   1460 Jul 25 09:31 allclasses-noframe.html
-rw-r--r--  1 myname  staff   8282 Jul 25 09:31 constant-values.html
-rw-r--r--  1 myname  staff   4499 Jul 25 09:31 deprecated-list.html
-rw-r--r--  1 myname  staff   8796 Jul 25 09:31 help-doc.html
-rw-r--r--  1 myname  staff  36675 Jul 25 09:31 index-all.html
-rw-r--r--  1 myname  staff   2843 Jul 25 09:31 index.html
drwxr-xr-x  3 myname  staff     96 Jul 25 09:31 org
-rw-r--r--  1 myname  staff   7491 Jul 25 09:31 overview-tree.html
-rw-r--r--  1 myname  staff      8 Jul 25 09:31 package-list
-rw-r--r--  1 myname  staff    827 Jul 25 09:31 script.js
-rw-r--r--  1 myname  staff   4721 Jul 25 09:31 serialized-form.html
-rw-r--r--  1 myname  staff  12808 Jul 25 09:31 stylesheet.css

./jpy/doc/_static/java-apidocs/org:
total 0
drwxr-xr-x  17 myname  staff  544 Jul 25 09:31 jpy

./jpy/doc/_static/java-apidocs/org/jpy:
total 544
-rw-r--r--   1 myname  staff  17756 Jul 25 09:31 DL.html
-rw-r--r--   1 myname  staff  11767 Jul 25 09:31 KeyError.html
-rw-r--r--   1 myname  staff  36004 Jul 25 09:31 PyDictWrapper.html
-rw-r--r--   1 myname  staff  18427 Jul 25 09:31 PyInputMode.html
-rw-r--r--   1 myname  staff  16911 Jul 25 09:31 PyLib.CallableKind.html
-rw-r--r--   1 myname  staff  17182 Jul 25 09:31 PyLib.Diag.html
-rw-r--r--   1 myname  staff  21185 Jul 25 09:31 PyLib.html
-rw-r--r--   1 myname  staff  20373 Jul 25 09:31 PyModule.html
-rw-r--r--   1 myname  staff  56156 Jul 25 09:31 PyObject.html
-rw-r--r--   1 myname  staff  11636 Jul 25 09:31 StopIteration.html
drwxr-xr-x  12 myname  staff    384 Jul 25 09:31 class-use
-rw-r--r--   1 myname  staff   1820 Jul 25 09:31 package-frame.html
-rw-r--r--   1 myname  staff  10435 Jul 25 09:31 package-summary.html
-rw-r--r--   1 myname  staff   7515 Jul 25 09:31 package-tree.html
-rw-r--r--   1 myname  staff   5643 Jul 25 09:31 package-use.html

./jpy/doc/_static/java-apidocs/org/jpy/class-use:
total 200
-rw-r--r--  1 myname  staff   4185 Jul 25 09:31 DL.html
-rw-r--r--  1 myname  staff   4251 Jul 25 09:31 KeyError.html
-rw-r--r--  1 myname  staff   5867 Jul 25 09:31 PyDictWrapper.html
-rw-r--r--  1 myname  staff  10355 Jul 25 09:31 PyInputMode.html
-rw-r--r--  1 myname  staff   7799 Jul 25 09:31 PyLib.CallableKind.html
-rw-r--r--  1 myname  staff   4273 Jul 25 09:31 PyLib.Diag.html
-rw-r--r--  1 myname  staff   4218 Jul 25 09:31 PyLib.html
-rw-r--r--  1 myname  staff   6557 Jul 25 09:31 PyModule.html
-rw-r--r--  1 myname  staff  23201 Jul 25 09:31 PyObject.html
-rw-r--r--  1 myname  staff   4306 Jul 25 09:31 StopIteration.html

./jpy/pysobug:
total 48
-rw-r--r--  1 myname  staff  2074 Jul 25 09:31 README.txt
-rw-r--r--  1 myname  staff   496 Jul 25 09:31 make.sh
-rw-r--r--  1 myname  staff   640 Jul 25 09:31 mypy.c
-rw-r--r--  1 myname  staff   329 Jul 25 09:31 mypydl.c
-rw-r--r--  1 myname  staff   928 Jul 25 09:31 mypymod.c
-rw-r--r--  1 myname  staff   318 Jul 25 09:31 setup.py

./jpy/src:
total 0
drwxr-xr-x  4 myname  staff  128 Jul 25 09:31 main
drwxr-xr-x  5 myname  staff  160 Jul 25 09:31 test

./jpy/src/main:
total 0
drwxr-xr-x  23 myname  staff  736 Jul 25 09:31 c
drwxr-xr-x   3 myname  staff   96 Jul 25 09:31 java

./jpy/src/main/c:
total 624
drwxr-xr-x  8 myname  staff    256 Jul 25 09:31 jni
-rw-r--r--  1 myname  staff   1643 Jul 25 09:31 jpy_compat.c
-rw-r--r--  1 myname  staff   2967 Jul 25 09:31 jpy_compat.h
-rw-r--r--  1 myname  staff   7600 Jul 25 09:31 jpy_conv.c
-rw-r--r--  1 myname  staff   4107 Jul 25 09:31 jpy_conv.h
-rw-r--r--  1 myname  staff   5585 Jul 25 09:31 jpy_diag.c
-rw-r--r--  1 myname  staff   1436 Jul 25 09:31 jpy_diag.h
-rw-r--r--  1 myname  staff  11127 Jul 25 09:31 jpy_jarray.c
-rw-r--r--  1 myname  staff   1541 Jul 25 09:31 jpy_jarray.h
-rw-r--r--  1 myname  staff   4522 Jul 25 09:31 jpy_jfield.c
-rw-r--r--  1 myname  staff   1456 Jul 25 09:31 jpy_jfield.h
-rw-r--r--  1 myname  staff  38049 Jul 25 09:31 jpy_jmethod.c
-rw-r--r--  1 myname  staff   3369 Jul 25 09:31 jpy_jmethod.h
-rw-r--r--  1 myname  staff  29201 Jul 25 09:31 jpy_jobj.c
-rw-r--r--  1 myname  staff   1232 Jul 25 09:31 jpy_jobj.h
-rw-r--r--  1 myname  staff  95009 Jul 25 09:31 jpy_jtype.c
-rw-r--r--  1 myname  staff   4639 Jul 25 09:31 jpy_jtype.h
-rw-r--r--  1 myname  staff  46538 Jul 25 09:31 jpy_module.c
-rw-r--r--  1 myname  staff   6894 Jul 25 09:31 jpy_module.h
-rw-r--r--  1 myname  staff   3590 Jul 25 09:31 jpy_verboseexcept.c
-rw-r--r--  1 myname  staff    962 Jul 25 09:31 jpy_verboseexcept.h

./jpy/src/main/c/jni:
total 176
-rw-r--r--  1 myname  staff   2968 Jul 25 09:31 org_jpy_DL.c
-rw-r--r--  1 myname  staff    969 Jul 25 09:31 org_jpy_DL.h
-rw-r--r--  1 myname  staff  65204 Jul 25 09:31 org_jpy_PyLib.c
-rw-r--r--  1 myname  staff   7900 Jul 25 09:31 org_jpy_PyLib.h
-rw-r--r--  1 myname  staff    286 Jul 25 09:31 org_jpy_PyLib_CallableKind.h
-rw-r--r--  1 myname  staff   1153 Jul 25 09:31 org_jpy_PyLib_Diag.h

./jpy/src/main/java:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 org

./jpy/src/main/java/org:
total 0
drwxr-xr-x  16 myname  staff  512 Jul 25 09:31 jpy

./jpy/src/main/java/org/jpy:
total 200
-rw-r--r--  1 myname  staff   2888 Jul 25 09:31 DL.java
-rw-r--r--  1 myname  staff    881 Jul 25 09:31 KeyError.java
-rw-r--r--  1 myname  staff   7158 Jul 25 09:31 PyDictWrapper.java
-rw-r--r--  1 myname  staff   1943 Jul 25 09:31 PyInputMode.java
-rw-r--r--  1 myname  staff  19560 Jul 25 09:31 PyLib.java
-rw-r--r--  1 myname  staff   4634 Jul 25 09:31 PyLibConfig.java
-rw-r--r--  1 myname  staff   5024 Jul 25 09:31 PyListWrapper.java
-rw-r--r--  1 myname  staff   4263 Jul 25 09:31 PyModule.java
-rw-r--r--  1 myname  staff  17457 Jul 25 09:31 PyObject.java
-rw-r--r--  1 myname  staff   5691 Jul 25 09:31 PyProxyHandler.java
-rw-r--r--  1 myname  staff    894 Jul 25 09:31 StopIteration.java
drwxr-xr-x  5 myname  staff    160 Jul 25 09:31 annotations
drwxr-xr-x  4 myname  staff    128 Jul 25 09:31 jsr223
-rw-r--r--  1 myname  staff   2083 Jul 25 09:31 package-info.java

./jpy/src/main/java/org/jpy/annotations:
total 24
-rw-r--r--  1 myname  staff  1118 Jul 25 09:31 Mutable.java
-rw-r--r--  1 myname  staff  1133 Jul 25 09:31 Output.java
-rw-r--r--  1 myname  staff  1110 Jul 25 09:31 Return.java

./jpy/src/main/java/org/jpy/jsr223:
total 48
-rw-r--r--  1 myname  staff  9865 Jul 25 09:31 ScriptEngineFactoryImpl.java
-rw-r--r--  1 myname  staff  9527 Jul 25 09:31 ScriptEngineImpl.java

./jpy/src/test:
total 0
drwxr-xr-x   3 myname  staff   96 Jul 25 09:31 java
drwxr-xr-x  18 myname  staff  576 Jul 25 09:31 python
drwxr-xr-x   4 myname  staff  128 Jul 25 09:31 resources

./jpy/src/test/java:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 org

./jpy/src/test/java/org:
total 0
drwxr-xr-x  11 myname  staff  352 Jul 25 09:31 jpy

./jpy/src/test/java/org/jpy:
total 96
-rw-r--r--   1 myname  staff   5125 Jul 25 09:31 JavaReflectionTest.java
-rw-r--r--   1 myname  staff   1076 Jul 25 09:31 LifeCycleTest.java
-rw-r--r--   1 myname  staff   5365 Jul 25 09:31 PyLibTest.java
-rw-r--r--   1 myname  staff   2296 Jul 25 09:31 PyLibWithSysPathTest.java
-rw-r--r--   1 myname  staff   3218 Jul 25 09:31 PyModuleTest.java
-rw-r--r--   1 myname  staff  14013 Jul 25 09:31 PyObjectTest.java
-rw-r--r--   1 myname  staff   3987 Jul 25 09:31 UseCases.java
drwxr-xr-x  18 myname  staff    576 Jul 25 09:31 fixtures
drwxr-xr-x   3 myname  staff     96 Jul 25 09:31 jsr223

./jpy/src/test/java/org/jpy/fixtures:
total 136
-rw-r--r--  1 myname  staff  1553 Jul 25 09:31 ConstructorOverloadTestFixture.java
-rw-r--r--  1 myname  staff  1207 Jul 25 09:31 CovariantOverloadExtendTestFixture.java
-rw-r--r--  1 myname  staff  1205 Jul 25 09:31 CovariantOverloadTestFixture.java
-rw-r--r--  1 myname  staff   979 Jul 25 09:31 DefaultInterfaceImplTestFixture.java
-rw-r--r--  1 myname  staff   988 Jul 25 09:31 DefaultInterfaceTestFixture.java
-rw-r--r--  1 myname  staff  2080 Jul 25 09:31 ExceptionTestFixture.java
-rw-r--r--  1 myname  staff  1966 Jul 25 09:31 FieldTestFixture.java
-rw-r--r--  1 myname  staff  4179 Jul 25 09:31 MethodOverloadTestFixture.java
-rw-r--r--  1 myname  staff  3652 Jul 25 09:31 MethodReturnValueTestFixture.java
-rw-r--r--  1 myname  staff  2270 Jul 25 09:31 ModifyAndReturnParametersTestFixture.java
-rw-r--r--  1 myname  staff   932 Jul 25 09:31 Processor.java
-rw-r--r--  1 myname  staff  1411 Jul 25 09:31 Thing.java
-rw-r--r--  1 myname  staff  1308 Jul 25 09:31 TypeConversionTestFixture.java
-rw-r--r--  1 myname  staff  1137 Jul 25 09:31 TypeResolutionTestFixture.java
-rw-r--r--  1 myname  staff  1070 Jul 25 09:31 TypeTranslationTestFixture.java
-rw-r--r--  1 myname  staff  3830 Jul 25 09:31 VarArgsTestFixture.java

./jpy/src/test/java/org/jpy/jsr223:
total 8
-rw-r--r--  1 myname  staff  2297 Jul 25 09:31 Jsr223Test.java

./jpy/src/test/python:
total 176
drwxr-xr-x  6 myname  staff   192 Jul 25 09:31 fixtures
drwxr-xr-x  6 myname  staff   192 Jul 25 09:31 imp
-rw-r--r--  1 myname  staff  7785 Jul 25 09:31 jpy_array_test.py
-rw-r--r--  1 myname  staff  1278 Jul 25 09:31 jpy_diag_test.py
-rw-r--r--  1 myname  staff  5553 Jul 25 09:31 jpy_exception_test.py
-rw-r--r--  1 myname  staff  4148 Jul 25 09:31 jpy_field_test.py
-rw-r--r--  1 myname  staff  2747 Jul 25 09:31 jpy_gettype_test.py
-rw-r--r--  1 myname  staff  9135 Jul 25 09:31 jpy_modretparam_test.py
-rw-r--r--  1 myname  staff  1038 Jul 25 09:31 jpy_mt_test.py
-rw-r--r--  1 myname  staff  9550 Jul 25 09:31 jpy_overload_test.py
-rw-r--r--  1 myname  staff  1313 Jul 25 09:31 jpy_perf_test.py
-rw-r--r--  1 myname  staff  4082 Jul 25 09:31 jpy_retval_test.py
-rw-r--r--  1 myname  staff  6539 Jul 25 09:31 jpy_rt_test.py
-rw-r--r--  1 myname  staff  1237 Jul 25 09:31 jpy_translation_test.py
-rw-r--r--  1 myname  staff  2186 Jul 25 09:31 jpy_typeconv_test.py
-rw-r--r--  1 myname  staff  2368 Jul 25 09:31 jpy_typeres_test.py

./jpy/src/test/python/fixtures:
total 32
-rw-r--r--  1 myname  staff  684 Jul 25 09:31 hasheqstr.py
-rw-r--r--  1 myname  staff  575 Jul 25 09:31 proc_class.py
-rw-r--r--  1 myname  staff  501 Jul 25 09:31 proc_module.py
-rw-r--r--  1 myname  staff   84 Jul 25 09:31 raise_errors.py

./jpy/src/test/python/imp:
total 48
-rw-r--r--  1 myname  staff  4034 Jul 25 09:31 import_ex1.py
-rw-r--r--  1 myname  staff  2370 Jul 25 09:31 import_ex2.py
-rw-r--r--  1 myname  staff  4116 Jul 25 09:31 packages-jre6.txt
-rw-r--r--  1 myname  staff  4234 Jul 25 09:31 packages-jre7.txt

./jpy/src/test/resources:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 META-INF
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 pymodules

./jpy/src/test/resources/META-INF:
total 0
drwxr-xr-x  3 myname  staff  96 Jul 25 09:31 services

./jpy/src/test/resources/META-INF/services:
total 8
-rw-r--r--  1 myname  staff  38 Jul 25 09:31 javax.script.ScriptEngineFactory

./jpy/src/test/resources/pymodules:
total 8
-rw-r--r--  1 myname  staff  11 Jul 25 09:31 mod_1.py

./testdata:
total 128
drwxr-xr-x@ 38 myname  staff   1216 May 13 11:31 MER_FRS_L1B_SUBSET.data
-rw-r--r--@  1 myname  staff  64924 May 13 11:04 MER_FRS_L1B_SUBSET.dim

./testdata/MER_FRS_L1B_SUBSET.data:
total 2776
-rw-r--r--@  1 myname  staff    256 May 13 11:04 detector_index.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 detector_index.img
-rw-r--r--@  1 myname  staff    277 May 13 11:04 l1_flags.hdr
-rw-r--r--@  1 myname  staff  40664 May 13 11:04 l1_flags.img
-rw-r--r--@  1 myname  staff    335 May 13 11:04 radiance_1.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_1.img
-rw-r--r--@  1 myname  staff    341 May 13 11:04 radiance_10.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_10.img
-rw-r--r--@  1 myname  staff    340 May 13 11:04 radiance_11.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_11.img
-rw-r--r--@  1 myname  staff    342 May 13 11:04 radiance_12.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_12.img
-rw-r--r--@  1 myname  staff    340 May 13 11:04 radiance_13.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_13.img
-rw-r--r--@  1 myname  staff    340 May 13 11:04 radiance_14.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_14.img
-rw-r--r--@  1 myname  staff    341 May 13 11:04 radiance_15.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_15.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_2.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_2.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_3.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_3.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_4.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_4.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_5.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_5.img
-rw-r--r--@  1 myname  staff    335 May 13 11:04 radiance_6.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_6.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_7.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_7.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_8.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_8.img
-rw-r--r--@  1 myname  staff    339 May 13 11:04 radiance_9.hdr
-rw-r--r--@  1 myname  staff  81328 May 13 11:04 radiance_9.img
drwxr-xr-x@ 32 myname  staff   1024 May 13 11:31 tie_point_grids
drwxr-xr-x@  4 myname  staff    128 May 13 11:31 vector_data

./testdata/MER_FRS_L1B_SUBSET.data/tie_point_grids:
total 240
-rw-r--r--@ 1 myname  staff  258 May 13 11:04 atm_press.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 atm_press.img
-rw-r--r--@ 1 myname  staff  263 May 13 11:04 dem_alt.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 dem_alt.img
-rw-r--r--@ 1 myname  staff  266 May 13 11:04 dem_rough.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 dem_rough.img
-rw-r--r--@ 1 myname  staff  278 May 13 11:04 lat_corr.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 lat_corr.img
-rw-r--r--@ 1 myname  staff  281 May 13 11:04 latitude.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 latitude.img
-rw-r--r--@ 1 myname  staff  279 May 13 11:04 lon_corr.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 lon_corr.img
-rw-r--r--@ 1 myname  staff  301 May 13 11:04 longitude.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 longitude.img
-rw-r--r--@ 1 myname  staff  251 May 13 11:04 merid_wind.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 merid_wind.img
-rw-r--r--@ 1 myname  staff  241 May 13 11:04 ozone.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 ozone.img
-rw-r--r--@ 1 myname  staff  248 May 13 11:04 rel_hum.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 rel_hum.img
-rw-r--r--@ 1 myname  staff  255 May 13 11:04 sun_azimuth.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 sun_azimuth.img
-rw-r--r--@ 1 myname  staff  252 May 13 11:04 sun_zenith.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 sun_zenith.img
-rw-r--r--@ 1 myname  staff  260 May 13 11:04 view_azimuth.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 view_azimuth.img
-rw-r--r--@ 1 myname  staff  258 May 13 11:04 view_zenith.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 view_zenith.img
-rw-r--r--@ 1 myname  staff  246 May 13 11:04 zonal_wind.hdr
-rw-r--r--@ 1 myname  staff  120 May 13 11:04 zonal_wind.img

./testdata/MER_FRS_L1B_SUBSET.data/vector_data:
total 16
-rw-r--r--@ 1 myname  staff  209 May 13 11:04 ground_control_points.csv
-rw-r--r--@ 1 myname  staff  225 May 13 11:04 pins.csv

./tests:
total 32
-rw-r--r--@ 1 myname  staff    22 May 13 11:04 __init__.py
-rw-r--r--@ 1 myname  staff   937 May 13 11:04 test_snappy_mem.py
-rw-r--r--@ 1 myname  staff  1647 May 13 11:04 test_snappy_perf.py
-rw-r--r--@ 1 myname  staff  3472 May 13 11:04 test_snappy_product.py

Hi, thanks, that output makes sense now!

This means that your specific setup would need a jpy wheel named
jpy-0.13.0-cp310-cp310-macosx_10_9_universal2.whl

As I suspected, although the jpy-consortium provides many wheels for many combinations, there is no such whl with that particular name. However, we could try if a ‘similar’ config would do the job for you. Therefore:

  1. Cleanup: Delete all content in your ~/.snap/snap-python/esa_snappy
  2. From jpy-consortium download jpy-0.13.0-cp311-cp311-macosx_10_9_universal2.whl and copy into ~/.snap/snap-python/esa_snappy
  3. If you have a Python 3.11 available, you could try to directly config esa_snappy with this: ./snappy-conf </path/to/python311_executable>
  4. If you do not have a Python 3.11 or do not want to use it, you could rename the wheel to jpy-0.13.0-cp310-cp310-macosx_10_9_universal2.whl and try the snappy-conf with your Python 3.10 as before (no idea if this works though…)

Good luck!

1 Like

@dolaf thank you so much! It installed, but now I’m getting errors when I import it. But we’re making progress!

>>sys.path.append('/Users/myname/.snap/snap-python')
>>import esa_snappy
outputs:

Error while parsing JAI registry file "file:/Applications/esa-snap/snap/modules/org.esa.snap.snap-core/org-geotools/gt-coverage.jar!/META-INF/registryFile.jai" :
Error in registry file at line number #31
A descriptor is already registered against the name "org.geotools.ColorReduction" under registry mode "rendered"
Error in registry file at line number #32
A descriptor is already registered against the name "org.geotools.ColorInversion" under registry mode "rendered"
Error while parsing JAI registry file "file:/Applications/esa-snap/snap/modules/org.esa.snap.snap-core/org-jaitools/jt-zonalstats.jar!/META-INF/registryFile.jai" :
Error in registry file at line number #4
A descriptor is already registered against the name "ZonalStats" under registry mode "rendered"
WARNING: org.esa.snap.core.util.ServiceLoader: org.esa.snap.core.gpf.OperatorSpi: Provider eu.esa.opt.meris.sdr.aerosol.AerosolMergerOp$Spi not found
WARNING: org.esa.snap.core.util.ServiceLoader: org.esa.snap.core.gpf.OperatorSpi: Provider eu.esa.opt.meris.sdr.aerosol.ModisAerosolOp$Spi not found
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.esa.snap.runtime.Engine (file:/Applications/esa-snap/opttbx/modules/ext/eu.esa.opt.opttbx-c2rcc/org-esa-snap/snap-runtime.jar) to method java.lang.ClassLoader.initializePath(java.lang.String)
WARNING: Please consider reporting this to the maintainers of org.esa.snap.runtime.Engine
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
INFO: org.esa.snap.core.gpf.operators.tooladapter.ToolAdapterIO: Initializing external tool adapters
INFO: org.esa.snap.core.util.EngineVersionCheckActivator: Please check regularly for new updates for the best SNAP experience.

Good to see this! The messages are related to other parts of SNAP, you can ignore them here. - If the Python prompt comes back with no further errors, can you now import SNAP classes, e.g.: from esa_snappy import ProductIO?

Btw, did you configure now for Python 3.10 or 3.11?

Hi @dolaf! I was able to import ProductIO with no errors. I’m using Python 3.11.9. Thank you so much for all of your help!

dear dolaf,
i found i should install the setup of jpy but i got this erroe when i run this code:
python setup.py bdist_wheel
python setup.py bdist_wheel
C:\Users\fs-home 3\Downloads\Compressed\jpy-0.9.0\jpy-0.9.0\setup.py:26: SetuptoolsDeprecationWarning: The test command is disabled and references to it are deprecated.
!!

    ********************************************************************************
    Please remove any references to `setuptools.command.test` in all supported versions of the affected package.

    This deprecation is overdue, please update your project and remove deprecated
    calls to avoid build errors in the future.
    ********************************************************************************

!!
from setuptools.command.test import test
Note that you can use non-standard global option [–maven] to force a Java Maven build for the jpy Java API
C:\Users\fs-home 3\anaconda3\Lib\site-packages\setuptools\dist.py:488: SetuptoolsDeprecationWarning: Invalid dash-separated options
!!

    ********************************************************************************
    Usage of dash-separated 'description-file' will not be supported in future
    versions. Please use the underscore name 'description_file' instead.

    By 2025-Mar-03, you need to update your project and remove deprecated calls
    or your builds will no longer be supported.

    See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
    ********************************************************************************

!!
opt = self.warn_dash_deprecation(opt, section)
C:\Users\fs-home 3\anaconda3\Lib\site-packages\setuptools_distutils\dist.py:261: UserWarning: Unknown distribution option: ‘test_suite’
warnings.warn(msg)
INFO:root:running bdist_wheel
INFO:root:running build
INFO:root:running build_py
INFO:root:copying jpyutil.py → build\lib.win-amd64-cpython-312
INFO:root:running build_ext
INFO:root:building ‘jpy’ extension
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jni/org_jpy_PyLib.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jni/org_jpy_PyLib.obj
org_jpy_PyLib.c
src\main\c\jni/org_jpy_PyLib.c(135): warning C4996: ‘PySys_SetArgvEx’: deprecated in 3.11
src\main\c\jni/org_jpy_PyLib.c(177): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(208): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(256): warning C4013: ‘JPy_free’ undefined; assuming extern returning int
src\main\c\jni/org_jpy_PyLib.c(296): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(353): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(431): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(457): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(485): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(506): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(527): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(553): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(583): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(646): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(679): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(701): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(737): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(786): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(809): warning C4996: ‘PyEval_InitThreads’: deprecated in 3.9
src\main\c\jni/org_jpy_PyLib.c(1097): warning C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_compat.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_compat.obj
jpy_compat.c
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_conv.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_conv.obj
jpy_conv.c
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_diag.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_diag.obj
jpy_diag.c
src\main\c\jpy_diag.c(106): warning C4047: ‘initializing’: ‘Py_ssize_t’ differs in levels of indirection from ‘void *’
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_jarray.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_jarray.obj
jpy_jarray.c
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_jfield.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_jfield.obj
jpy_jfield.c
src\main\c\jpy_jfield.c(103): warning C4047: ‘initializing’: ‘Py_ssize_t’ differs in levels of indirection from ‘void *’
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_jmethod.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_jmethod.obj
jpy_jmethod.c
src\main\c\jpy_jmethod.c(571): warning C4047: ‘initializing’: ‘Py_ssize_t’ differs in levels of indirection from ‘void *’
src\main\c\jpy_jmethod.c(847): warning C4047: ‘initializing’: ‘Py_ssize_t’ differs in levels of indirection from ‘void *’
INFO:root:“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe” /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -Isrc\main\c “-IC:\Program Files\Java\jdk-23\include” “-IC:\Program Files\Java\jdk-23\include\win32” “-IC:\Users\fs-home 3\anaconda3\include” “-IC:\Users\fs-home 3\anaconda3\Include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include” “-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt” “-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt” “-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um” /Tcsrc\main\c\jpy_jobj.c /Fobuild\temp.win-amd64-cpython-312\Release\src\main\c\jpy_jobj.obj
jpy_jobj.c
src\main\c\jpy_jobj.c(683): error C2106: ‘=’: left operand must be l-value
src\main\c\jpy_jobj.c(684): error C2106: ‘=’: left operand must be l-value
src\main\c\jpy_jobj.c(685): error C2106: ‘=’: left operand must be l-value
error: command ‘C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x86\cl.exe’ failed with exit code 2

Hi,

I’m not sure what you want to do, but I assume that you finally wanted to install esa_snappy.

From SNAP 10 onwards, a manual installation/configuration of jpy is no longer necessary. Please follow the latest installation procedure for esa_snappy as described here.

Of course, feel free to report back here if you still observe problems.

Cheers,
Olaf

thanks for your response, but I got this error: Configuring ESA SNAP-Python interface...

Configuration failed!

Error: Python configuration error

Full stack trace:
I checked I do not have PYTHONPATH in my environment.

this is my path:
PS C:\Program Files\esa-snap\bin> .\snappy-conf.bat “C:\Anaconda3\python.exe”

The launcher has determined that the parent process has a console and will reuse it for its own console output.
Closing the console will result in termination of the running program.
Use ‘–console suppress’ to suppress console output.
Use ‘–console new’ to create a separate console window.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.netbeans.ProxyURLStreamHandlerFactory (file:/C:/Program%20Files/esa-snap/platform/lib/boot.jar) to field java.net.URL.handler
WARNING: Please consider reporting this to the maintainers of org.netbeans.ProxyURLStreamHandlerFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Configuring ESA SNAP-Python interface…
Configuration failed!
Error: Python configuration error
Full stack trace:

my log message is:
INFO: Installing from Java module ‘C:\Users\fs-home 3\AppData\Roaming\SNAP\modules\eu-esa-snap-esa-snappy.jar’
INFO: Installing jpy…
ERROR: The module ‘jpy’ is required to run snappy, but no binary ‘jpy’ wheel matching the pattern
‘jpy-{version}-cp312-{abi_tag}-win_amd64.whl’ could be found.
You can try to build a ‘jpy’ wheel yourself, then copy it into
“C:\Users\fs-home 3.snap\snap-python\esa_snappy”, and then run the configuration again.
Unzip the jpy sources in C:\Users\fs-home 3.snap\snap-python\esa_snappy/jpy-.zip, then
cd jpy-<version> python setup.py bdist_wheel
cp dist/*.whl "C:\Users\fs-home 3\.snap\snap-python\esa_snappy" Or get the source code from https://github.com/bcdev/jpy and follow the build instructions: git clone GitHub - bcdev/jpy: A bi-directional Python-Java bridge used to embed Java in CPython or the other way round.
$ cd jpy
ERROR: Configuration failed with exit code 10

and
print(distutils.util.get_platform())
win-amd64

Hi nilxaliz1,

thanks for your detailed report:

no binary ‘jpy’ wheel matching the pattern
‘jpy-{version}-cp312-{abi_tag}-win_amd64.whl’ could be found.

This message indicates that you are obviously using Python 3.12. This is likely the reason for your failure, because the highest Python version currently supported by esa_snappy is 3.10, as also stated in the documentation. The reason for this restriction is that we need to stay in line with the jpy evolution, which is also an ongoing activity. For the next major SNAP release we plan to support up to version 3.12.

A manual jpy installation might still work in certain cases, but this is not tested and thus not recommended. For the moment, please switch to a Python version <= 3.10. Sorry for this inconvenence.

Many thanks,
Olaf