[New-bugs-announce] [issue36688] import dummy_threading causes ImportError
Karthikeyan Singaravelan
report at bugs.python.org
Sun Apr 21 02:20:08 EDT 2019
New submission from Karthikeyan Singaravelan <tir.karthi at gmail.com>:
importing dummy_threading causes ImportError. It used to work on 3.6. There are tests at Lib/test/test_dummy_threading.py and rearranging the import so that "import dummy_threading as _threading" is the first line also causes error. This module was deprecated from 3.7 with respect to threading enabled always but I thought to add a report anyway. Looking at git log it seems a6a4dc816d68df04a7d592e0b6af8c7ecc4d4344 did some changes where catching the ImportError on Lib/functools.py was removed that could be causing this issue. Importing functools before dummy_threading works.
# master with functools imported before dummy_threading
➜ cpython git:(master) ✗ ./python.exe -c 'import functools; import dummy_threading; print("hello")'
hello
# Python 3.6
$ python3.6 -c 'import dummy_threading; print("hello")'
hello
# Python 3.7
$ python3.7 -c 'import dummy_threading'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/dummy_threading.py", line 45, in <module>
import threading
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 8, in <module>
from traceback import format_exc as _format_exc
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/traceback.py", line 5, in <module>
import linecache
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/linecache.py", line 8, in <module>
import functools
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/functools.py", line 24, in <module>
from _thread import RLock
ImportError: cannot import name 'RLock' from '_dummy_thread' (/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_dummy_thread.py)
# master
$ cpython git:(master) ./python.exe -c 'import dummy_threading'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/dummy_threading.py", line 45, in <module>
import threading
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/threading.py", line 8, in <module>
from traceback import format_exc as _format_exc
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/traceback.py", line 5, in <module>
import linecache
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/linecache.py", line 8, in <module>
import functools
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/functools.py", line 20, in <module>
from _thread import RLock
ImportError: cannot import name 'RLock' from '_dummy_thread' (/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/_dummy_thread.py)
# Patch to move dummy_threading import as first line
diff --git a/Lib/test/test_dummy_threading.py b/Lib/test/test_dummy_threading.py
index a0c2972a60..dc40abeda5 100644
--- a/Lib/test/test_dummy_threading.py
+++ b/Lib/test/test_dummy_threading.py
@@ -1,6 +1,6 @@
+import dummy_threading as _threading
from test import support
import unittest
-import dummy_threading as _threading
import time
class DummyThreadingTestCase(unittest.TestCase):
➜ cpython git:(master) ✗ ./python.exe Lib/test/test_dummy_threading.py
Traceback (most recent call last):
File "Lib/test/test_dummy_threading.py", line 1, in <module>
import dummy_threading as _threading
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/dummy_threading.py", line 45, in <module>
import threading
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/threading.py", line 8, in <module>
from traceback import format_exc as _format_exc
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/traceback.py", line 5, in <module>
import linecache
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/linecache.py", line 8, in <module>
import functools
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/functools.py", line 20, in <module>
from _thread import RLock
ImportError: cannot import name 'RLock' from '_dummy_thread' (/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/_dummy_thread.py)
----------
components: Library (Lib)
messages: 340597
nosy: brett.cannon, pitrou, xtreak
priority: normal
severity: normal
status: open
title: import dummy_threading causes ImportError
type: behavior
versions: Python 3.7, Python 3.8
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue36688>
_______________________________________
More information about the New-bugs-announce
mailing list