我正在使用 MacBook Air M1 2020。 我正在使用 python3.12,并且收到共享内存错误消息
shared_mem = mp.shared_memory.SharedMemory(
^^^^^^^^^^^^^^^^
AttributeError: module 'multiprocessing' has no attribute 'shared_memory'
我正在使用 python3.12,根据 python 文档,shared_memory is 属性在 python 3.8 之后可用,但我仍然收到此错误。
经过进一步检查,我发现我使用的多处理库是旧的,需要升级。所以,我运行了命令
python3.12 -m pip install multiprocessing`
在安装日志中,我看到新版本的多处理可用,并且在构建时,C 语言出现异常。
File "/private/var/folders/cy/thhvn6rj59vc4vfwt01lfr340000gn/T/pip-build-env-1u42pmuy/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 94
print 'Macros:'
^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
有什么办法可以解决这个问题吗?我知道这对于 python 或 pip 来说不是问题,但我需要在 python 多处理中访问共享内存。我需要建立依赖关系。
您在 MacBook Air M1 2020 上尝试使用 Python 3.12 中的多处理模块时似乎遇到了问题。让我们分解一下解决此问题的步骤:
共享内存的属性错误: 从 Python 3.8 开始,shared_memory 属性确实可用。但是,您使用的多处理库似乎可能已过时并且不支持此属性。 您已正确识别出多处理库需要升级到支持shared_memory属性的版本。
pip安装时出错: 当您尝试使用命令 python3.12 -m pip install multiprocessing 安装多处理库时,您在安装过程中遇到语法错误。
要解决这些问题,您可以尝试以下步骤:
更新多处理库:** 尝试使用以下命令将多处理库更新到与 Python 3.12 兼容的最新版本: python3.12 -m pip install --升级多处理
考虑使用虚拟环境:** 为 Python 项目创建虚拟环境也是一个好主意,以避免与系统包发生潜在冲突。您可以使用 venv 或 virtualenv 创建虚拟环境,然后在隔离环境中安装所需的软件包。
检查 Python 3.12 兼容性:** 由于 Python 3.12 是一个相对较新的版本,因此某些软件包可能尚未完全支持它。您可能需要检查您使用的软件包与 Python 3.12 的兼容性。
验证安装日志:** 尝试安装多处理库后,请仔细检查安装日志以识别任何特定错误或警告,以便更深入地了解安装失败。
安装期间语法错误:** 您在安装过程中遇到的语法错误可能与多处理库的构建过程有关。确保您尝试安装的库与 Python 3.12 兼容非常重要。
如果您继续遇到问题,您可能需要考虑联系多处理库的维护人员,询问 Python 3.12 兼容性以及在系统上成功安装和使用该库所需的任何具体步骤。
此外,我建议查看与多处理库相关的官方文档或社区论坛,以获取有关将其与 Python 3.12 和 M1 架构一起使用的任何具体指南。