为啥我收到一个错误,显示模块“多处理”没有属性“sharedctypes”?
Posted
技术标签:
【中文标题】为啥我收到一个错误,显示模块“多处理”没有属性“sharedctypes”?【英文标题】:Why do I get an error that reads module 'multiprocessing' has no attribute 'sharedctypes'?为什么我收到一个错误,显示模块“多处理”没有属性“sharedctypes”? 【发布时间】:2021-03-17 15:13:50 【问题描述】:我有一个使用多处理的 Python 程序。
在某个时候,我会这样做:
import multiprocessing
import ctypes
...
# data is an ndarray
sm_data = multiprocessing.sharedctypes.RawArray(ctypes.c_double, data.flatten())
...将数据ndarray复制到共享内存中。
令我惊讶的是,它失败了:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/home/stark/anaconda3/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/home/stark/anaconda3/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/stark/Work/mmr/GpuVm_CUDA.py", line 266, in run_simulation
sm_data = multiprocessing.sharedctypes.RawArray(ctypes.c_double, data.flatten())
AttributeError: module 'multiprocessing' has no attribute 'sharedctypes'
它怎么没有sharedctypes?在 IDE 中,如果我只是 ctrl+单击名称,我会在 sharedctypes.py 中找到它的定义。
很明显它在那里,但是当我运行它时找不到它?
【问题讨论】:
【参考方案1】:您还需要导入子包:
import multiprocessing
import multiprocessing.sharedctypes
import ctypes
【讨论】:
啊哈.. 非常感谢,工作就像一个魅力!以上是关于为啥我收到一个错误,显示模块“多处理”没有属性“sharedctypes”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我收到错误:AttributeError:'builtin_function_or_method'对象没有属性'isdigit'
Python多处理错误:AttributeError:模块'__main__'没有属性'__spec__'
我收到属性错误:“模块”对象在运行 python 代码时没有属性“enableTrace”