Closed edigonzales closed 6 months ago
Adding some relevant notes from Slack discussion. When the launcher is run with VERBOSE_GRAALVM_LAUNCHERS
, it gives:
org.graalvm.launcher.executablename set to '-Dorg.graalvm.launcher.executablename=./bin/graalpy'
Setting VM argument -Dorg.graalvm.launcher.class=com.oracle.graal.python.shell.GraalPythonMain
Setting VM argument -Dorg.graalvm.version=23.1.0
Setting VM argument -Dorg.graalvm.launcher.executablename=./bin/graalpy
Setting VM argument -Djava.library.path=/home/ubuntu/apps/graalpy/bin/../jvmlibs
Setting VM argument -Dorg.graalvm.language.python.home=/home/ubuntu/apps/graalpy
Setting VM argument -Dorg.graalvm.language.llvm.home=/home/ubuntu/apps/graalpy/lib/sulong
Setting VM argument -Dorg.graalvm.language.llvm-toolchain.home=/home/ubuntu/apps/graalpy/lib/llvm-toolchain
Setting VM argument -Dtruffle.attach.library=/home/ubuntu/apps/graalpy/jvmlibs/libtruffleattach.so
Setting VM argument -Dtruffle.nfi.library=/home/ubuntu/apps/graalpy/jvmlibs/libtrufflenfi.so
Setting VM argument -Xss16777216
Setting VM argument -Djava.class.path=
Setting VM argument --module-path=/home/ubuntu/apps/graalpy/modules
Setting VM argument -Djdk.module.main=org.graalvm.py.launcher
Setting VM argument -Dgraalvm.locatorDisabled=true
Loading library /home/ubuntu/apps/graalpy/bin/../jvm/lib/server/libjvm.so
Python 3.10.8 (Wed Sep 13 09:57:52 CEST 2023)
[Graal, GraalVM CE, Java 21] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
I cannot reproduce this issue on another ARM Linux. The path ./bin/graalpy
passed in JVM property org.graalvm.launcher.executablename
seems legit, but either it doesn't get through to GraalPy or GraalPy misinterprets it somehow. Could you try this:
pass --python.Executable=./bin/graalpy
(assuming that you actually run the graalpy
launcher via ./bin/graalpy
). What happens? Does that work?
check if the JVM actually gets the org.graalvm.launcher.executablename
property, for example via VisualVM UI or via command line using this:
When graalpy is running do:
import os; print(os.getpid())
to find out its PID and then run in another console:
/path/to/graalpy/jvm/bin/jcmd $PID VM.system_properties | grep executable
it should give
org.graalvm.launcher.executablename=./bin/graalpy
if the property was properly passed to the JVM.
When running
graalpy -m venv .venv
on Ubuntu 22.04 on ARM I get the following error:From a slack discussion:
Workaround:
graalpy --python.Executable=/full/path/to/graalpy/bin/graalpy -m venv .venv
No problems on macOS (ARM).