multiprocessing.dummy why AttributeError: 'module' object has no attribute 'dummy'
multiprocessing.dummy why AttributeError: 'module' object has no attribute 'dummy'
我在Python遇到了一件奇怪的事:
>>> import multiprocessing
>>> thread_pool = multiprocessing.dummy.Pool()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dummy'
但是,当我尝试以下操作时:
>>> from multiprocessing.dummy import Pool as ThreadPool
>>> ThreadPool()
<multiprocessing.pool.ThreadPool object at 0x7faf9308d4a8>
和
>>> import multiprocessing.dummy
>>> multiprocessing.dummy.Pool()
<multiprocessing.pool.ThreadPool object at 0x7faf9308d2e8>
一切正常。
我知道 import xxx
和 from xxx import
之间的区别,我想知道为什么它会引发 AttributeError。 我的问题是为什么我不能在 import multiprocessing
之后使用 multiprocessing.dummy
?
multiprocessing.dummy
包未在 multiprocessing.__init__.py
中导入。因此,
>>> import multiprocessing
>>> thread_pool = multiprocessing.dummy.Pool()
不起作用。形成文档字符串:
# This package is intended to duplicate the functionality (and much of
# the API) of threading.py but uses processes instead of threads. A
# subpackage 'multiprocessing.dummy' has the same API but is a simple
# wrapper for 'threading'.
我猜这个子包是故意隐藏以防止人们不小心使用它。
我在Python遇到了一件奇怪的事:
>>> import multiprocessing
>>> thread_pool = multiprocessing.dummy.Pool()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dummy'
但是,当我尝试以下操作时:
>>> from multiprocessing.dummy import Pool as ThreadPool
>>> ThreadPool()
<multiprocessing.pool.ThreadPool object at 0x7faf9308d4a8>
和
>>> import multiprocessing.dummy
>>> multiprocessing.dummy.Pool()
<multiprocessing.pool.ThreadPool object at 0x7faf9308d2e8>
一切正常。
我知道 import xxx
和 from xxx import
之间的区别,我想知道为什么它会引发 AttributeError。 我的问题是为什么我不能在 import multiprocessing
之后使用 multiprocessing.dummy
?
multiprocessing.dummy
包未在 multiprocessing.__init__.py
中导入。因此,
>>> import multiprocessing
>>> thread_pool = multiprocessing.dummy.Pool()
不起作用。形成文档字符串:
# This package is intended to duplicate the functionality (and much of
# the API) of threading.py but uses processes instead of threads. A
# subpackage 'multiprocessing.dummy' has the same API but is a simple
# wrapper for 'threading'.
我猜这个子包是故意隐藏以防止人们不小心使用它。