dgtlmoon/changedetection.io

Python 3.13 - AttributeError: module 'eventlet.green.thread' has no attribute 'start_joinable_thread'

Closed this issue · 3 comments

Latest version (at the moment : changedetection.io-0.47.5) crashes on me on a recently upgraded Fedora 41 workstation with python3.13.

  • running command :
    nohup changedetection.io -d /path/to/apps/web/changedetection -p 5555 > changedetection.log 2>&1 &

changedetection.log :

Traceback (most recent call last):
  File "/home/didli/.local/bin/changedetection.io", line 5, in <module>
    from changedetectionio import main
  File "/home/didli/.local/lib/python3.13/site-packages/changedetectionio/__init__.py", line 12, in <module>
    import eventlet.wsgi
  File "/home/didli/.local/lib/python3.13/site-packages/eventlet/wsgi.py", line 14, in <module>
    from eventlet.green import BaseHTTPServer
  File "/home/didli/.local/lib/python3.13/site-packages/eventlet/green/BaseHTTPServer.py", line 3, in <module>
    from eventlet.green import SocketServer
  File "/home/didli/.local/lib/python3.13/site-packages/eventlet/green/SocketServer.py", line 5, in <module>
    from eventlet.green import threading
  File "/home/didli/.local/lib/python3.13/site-packages/eventlet/green/threading.py", line 18, in <module>
    eventlet.patcher.inject(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        'threading',
        ^^^^^^^^^^^^
        globals(),
        ^^^^^^^^^^
        ('_thread', thread),
        ^^^^^^^^^^^^^^^^^^^^
        ('time', time))
        ^^^^^^^^^^^^^^^
  File "/home/didli/.local/lib/python3.13/site-packages/eventlet/patcher.py", line 109, in inject
    module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
  File "/usr/lib64/python3.13/threading.py", line 35, in <module>
    _start_joinable_thread = _thread.start_joinable_thread
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'eventlet.green.thread' has no attribute 'start_joinable_thread'

workaround : (re)installing python3.12 and set up a dedicated env with 3.12 for changedetection.io

hmm python 3.13 is not supported

@didli hmm, i added a python 3.13 test, i suspect a lot of things will break and its not supported right now, but i guess it would be a good idea to solve it sometime soon

btw eventlet is also kinda deprecated for this app and the app needs to be totally refactored :(