oracle / graalpython

A Python 3 implementation built on GraalVM
Other
1.2k stars 103 forks source link

`python` under `venv` misbehaves when using `subprocess.run` #308

Closed oroppas closed 1 year ago

oroppas commented 1 year ago
(graalpy) [ryuta@fedora bugs]$ which python
/home/ryuta/packages/graalvm/graalpy/bin/python
(graalpy) [ryuta@fedora bugs]$ ls -l `which python`
lrwxrwxrwx. 1 ryuta ryuta 7 Dec 10 16:05 /home/ryuta/packages/graalvm/graalpy/bin/python -> graalpy

Now executing the piece of code with python gives the error:

(graalpy) [ryuta@fedora bugs]$ python -c "import subprocess; subprocess.run(['python']+list(('-c','import os')))"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/subprocess.py", line 503, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/ryuta/packages/graalvm/graalvm/graal/sdk/mxbuild/linux-amd64/GRAALVM_3666026860_JAVA17/graalvm-3666026860-java17-23.0.0-dev/languages/python/lib/python3.10/subprocess.py", line 1780, in _execute_child
    self.pid = _posixsubprocess.fork_exec(
ValueError: internal error: unsupported use of sys.executable

whereas graalpy works fine as expected:

(graalpy) [ryuta@fedora bugs]$ graalpy -c "import subprocess; subprocess.run(['python']+list(('-c','import os')))"