Skip to content

Support Python3.14 #180

@sf467

Description

@sf467

I upgraded my Python version to 3.14, then I reinstalled keepmenu using the command yay -S keepmenu-git. After running keepmenu, I encountered this error message.

└>keepmenu
Traceback (most recent call last):
  File "/usr/bin/keepmenu", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/lib/python3.14/site-packages/keepmenu/__main__.py", line 214, in main
    run(**args)
    ~~~^^^^^^^^
  File "/usr/lib/python3.14/site-packages/keepmenu/__main__.py", line 144, in run
    dmenu.start()
    ~~~~~~~~~~~^^
  File "/usr/lib/python3.14/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
                  ~~~~~~~~~~~^^^^^^
  File "/usr/lib/python3.14/multiprocessing/context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.14/multiprocessing/context.py", line 300, in _Popen
    return Popen(process_obj)
  File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__
    super().__init__(process_obj)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.14/multiprocessing/popen_fork.py", line 20, in __init__
    self._launch(process_obj)
    ~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 47, in _launch
    reduction.dump(process_obj, buf)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/multiprocessing/reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'weakref.ReferenceType' object
when serializing dict item '_weakref'
when serializing multiprocessing.util.Finalize state
when serializing multiprocessing.util.Finalize object
when serializing dict item 'finalizer'
when serializing multiprocessing.popen_forkserver.Popen state
when serializing multiprocessing.popen_forkserver.Popen object
when serializing dict item '_popen'
when serializing keepmenu.__main__.Server state
when serializing keepmenu.__main__.Server object
when serializing dict item 'server'
when serializing keepmenu.keepmenu.DmenuRunner state
when serializing keepmenu.keepmenu.DmenuRunner object
Traceback (most recent call last):
  File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 340, in main
    code = _serve_one(child_r, fds,
                      unused_fds,
                      old_handlers)
  File "/usr/lib/python3.14/multiprocessing/forkserver.py", line 380, in _serve_one
    code = spawn._main(child_r, parent_sentinel)
  File "/usr/lib/python3.14/multiprocessing/spawn.py", line 132, in _main
    self = reduction.pickle.load(from_parent)
  File "/usr/lib/python3.14/multiprocessing/synchronize.py", line 117, in __setstate__
    self._semlock = _multiprocessing.SemLock._rebuild(*state)
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions