GeezerVison is showing github.com — uvloop fails on 3.14 · Issue #637 · MagicStack/uvloop
uvloop fails on 3.14 #637DescriptionImportError while loading conftest '/home/runner/work/anyio/anyio/tests/conftest.py'.
tests/conftest.py:17: in <module>
import uvloop
/opt/hostedtoolcache/Python/3.14.0-alpha.1/x64/lib/python3.14/site-packages/uvloop/__init__.py:9: in <module>
from .loop import Loop as __BaseLoop # NOQA
uvloop/includes/stdlib.pxi:47: in init uvloop.loop
???
E AttributeError: module 'asyncio' has no attribute 'AbstractChildWatcher'
Reacted by Salimane Adjao Moustapha Activityfantix commented on Oct 21, 2024 Ah, this has been deprecated since Python 3.12 and will be removed in 3.14. Let's get rid of it in uvloop too. Reacted by Miro Hrončok, Nate, Vizonex and Salimane Adjao Moustapha befeleme commented on Mar 12, 2025 With Python 3.14.0a5 there's one more thing happening:
________________ ERROR collecting _empty/tests/test_aiohttp.py _________________
ImportError while importing test module '/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_aiohttp.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_aiohttp.py:14: in <module>
from uvloop import _testbase as tb
../../BUILDROOT/usr/lib64/python3.14/site-packages/uvloop/__init__.py:6: in <module>
from asyncio.events import BaseDefaultEventLoopPolicy as __BasePolicy
E ImportError: cannot import name 'BaseDefaultEventLoopPolicy' from 'asyncio.events' (/usr/lib64/python3.14/asyncio/events.py)
Reacted by Anton Agestam, Paulo Cheque and Salimane Adjao Moustapha hroncok commented on Mar 12, 2025
ImportError: cannot import name 'BaseDefaultEventLoopPolicy' from 'asyncio.events'
I reported that part as python/cpython#131148 hroncok commented on Mar 12, 2025 I attempted to do something in #658, but it doesn't work correctly.
I still get:
=================================== FAILURES ===================================
________________________ TestBaseAIO.test_set_task_name ________________________
Traceback (most recent call last):
File "/usr/lib64/python3.14/unittest/case.py", line 58, in testPartExecutor
yield
File "/usr/lib64/python3.14/unittest/case.py", line 660, in run
self._callTestMethod(testMethod)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 606, in _callTestMethod
result = method()
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_base.py", line 594, in test_set_task_name
self.assertEqual(result, "mytask!")
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 916, in assertEqual
assertion_func(first, second, msg=msg)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 909, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: None != 'mytask!'
________________ TestUVExecutors.test_executors_process_pool_01 ________________
Traceback (most recent call last):
File "/usr/lib64/python3.14/unittest/case.py", line 58, in testPartExecutor
yield
File "/usr/lib64/python3.14/unittest/case.py", line 660, in run
self._callTestMethod(testMethod)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 606, in _callTestMethod
result = method()
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_executors.py", line 35, in test_executors_process_pool_01
self.run_pool_test(concurrent.futures.ProcessPoolExecutor)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_executors.py", line 29, in run_pool_test
self.loop.run_until_complete(run())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_executors.py", line 24, in run
res = await asyncio.gather(*coros)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
_______________ TestAIOExecutors.test_executors_process_pool_01 ________________
Traceback (most recent call last):
File "/usr/lib64/python3.14/unittest/case.py", line 58, in testPartExecutor
yield
File "/usr/lib64/python3.14/unittest/case.py", line 660, in run
self._callTestMethod(testMethod)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 606, in _callTestMethod
result = method()
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_executors.py", line 35, in test_executors_process_pool_01
self.run_pool_test(concurrent.futures.ProcessPoolExecutor)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_executors.py", line 29, in run_pool_test
self.loop.run_until_complete(run())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
File "/usr/lib64/python3.14/asyncio/base_events.py", line 719, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_executors.py", line 24, in run
res = await asyncio.gather(*coros)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
___________________ TestIssue39Regr.test_issue39_regression ____________________
Traceback (most recent call last):
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_regr1.py", line 114, in test_issue39_regression
self.run_test()
~~~~~~~~~~~~~^^
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_regr1.py", line 93, in run_test
addr = qout.get()
File "/usr/lib64/python3.14/multiprocessing/queues.py", line 101, in get
res = self._recv_bytes()
File "/usr/lib64/python3.14/multiprocessing/connection.py", line 222, in recv_bytes
buf = self._recv_bytes(maxlength)
File "/usr/lib64/python3.14/multiprocessing/connection.py", line 437, in _recv_bytes
buf = self._recv(4)
File "/usr/lib64/python3.14/multiprocessing/connection.py", line 402, in _recv
chunk = read(handle, to_read)
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_regr1.py", line 74, in on_alarm
raise FailedTestError
tests.test_regr1.FailedTestError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/python3.14/unittest/case.py", line 58, in testPartExecutor
yield
File "/usr/lib64/python3.14/unittest/case.py", line 660, in run
self._callTestMethod(testMethod)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 606, in _callTestMethod
result = method()
File "/builddir/build/BUILD/python-uvloop-0.21.0-build/uvloop-0.21.0/_empty/tests/test_regr1.py", line 116, in test_issue39_regression
self.fail('deadlocked in libuv')
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/unittest/case.py", line 741, in fail
raise self.failureException(msg)
AssertionError: deadlocked in libuv
Reacted by skupr-anaconda cjwatson commented on Apr 16, 2025 Vizonex commented on May 20, 2025 @hroncok I have been looking at your work rather closely since I am the maintainer of the windows branch since I am trying to get caught up with some of these changes being made here and I was wondering if maybe migrating to using AbstractEventLoop would be a good solution and then making some form a deprecation warning that discourages the usage of event-loop-policies. Ahajha commented on Oct 8, 2025 Any update on this? Now that 3.14 is out it would be nice to get things working. Reacted by Jacek Hiszpanski, Mando, Stein Magnus Jodal, Javier Maestro, Adam Hamilton, Pieter, Victor Gram Thomsen, Ahmed Ilyas, Krzysztof Jagiello, Paul Sanders and 11 more michaelgmiller1 commented on Oct 9, 2025 +1 also blocked on the upgrade because of this tajchert commented on Oct 12, 2025 Hi, thanks so much for the fix, however on pypi there is still no 0.22.0 release (as well github releases). Reacted by Salimane Adjao Moustapha edgarrmondragon commented on Oct 13, 2025
Hi, thanks so much for the fix, however on pypi there is still no 0.22.0 release (as well github releases).
@tajchert it hasn't been published yet, see #692 Reacted by Michal Tajchert, Salimane Adjao Moustapha and Daniel
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|