oracle / graalpython

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

AttributeError: module 'signal' has no attribute 'siginterrupt' #347

Closed oroppas closed 5 months ago

oroppas commented 1 year ago

Here's how to replicate the error:

graalpy -m venv graalpy
source graalpy/bin/activate
graalpy -m pip install IPython
graalpy -m IPython
Python 3.10.8 (Wed Aug 02 07:54:19 JST 2023)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/IPython/__main__.py", line 15, in <module>
    start_ipython()
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/IPython/__init__.py", line 129, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/traitlets/config/application.py", line 1043, in launch_instance
    app.start()
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/IPython/terminal/ipapp.py", line 318, in start
    self.shell.mainloop()
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 888, in mainloop
    self.interact()
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 873, in interact
    code = self.prompt_for_code()
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 812, in prompt_for_code
    text = self.pt_app.prompt(
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/prompt_toolkit/shortcuts/prompt.py", line 1024, in prompt
    return self.app.run(
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 967, in run
    return loop.run_until_complete(coro)
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/asyncio/futures.py", line 201, in result
    raise self._exception.with_traceback(self._exception_tb)
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/asyncio/tasks.py", line 232, in __step
    result = coro.send(None)
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 872, in run_async
    stack.enter_context(set_handle_sigint(loop))
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/contextlib.py", line 492, in enter_context
    result = _cm_type.__enter__(cm)
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "/home/ryuta/local/graalpy/lib/python3.10/site-packages/prompt_toolkit/application/application.py", line 808, in set_handle_sigint
    loop.add_signal_handler(
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_E1230128E0_JAVA17/graalvm-e1230128e0-java17-23.1.0-dev/languages/python/lib/python3.10/asyncio/unix_events.py", line 119, in add_signal_handler
    signal.siginterrupt(sig, False)
AttributeError: module 'signal' has no attribute 'siginterrupt'

If you suspect this is an IPython 8.14.0 bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at ipython-dev@python.org

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    %config Application.verbose_crash=True
msimacek commented 5 months ago

We now have a dummy siginterrupt that seems to be enough for ipython.