You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多进程SharedMemory用嵌套目录名称报错:无效参数

Python SharedMemory仅支持扁平名称的原因解析

问题说明

执行以下代码:

from multiprocessing import shared_memory
shm = shared_memory.SharedMemory(name='test_dir/test_name', size=16, create=True)

会触发报错:无效参数: '/test_dir/test_name'

不支持带路径名称的核心原因

  • 底层系统接口限制:Python的SharedMemory依赖系统原生的共享内存机制(Linux下是shm_open,Windows下是文件映射API),这些系统接口本身不允许名称中包含路径分隔符(如/)。以Linux的shm_open为例,共享内存对象的命名规则是必须以单个/开头,但不能包含其他/,否则直接返回无效参数错误。
  • 命名空间设计逻辑:系统级共享内存的命名空间是扁平的,本质是全局唯一的标识,而非文件系统路径结构。保持扁平命名能简化跨进程的内存块查找逻辑,避免引入文件系统权限、路径存在性等额外复杂度。

参考依据

  • CPython源码实现:SharedMemory创建时会直接将名称传递给os.shm_open,而os.shm_open的行为完全遵循系统接口规范,不接受带路径的名称。
  • 系统手册:比如Linux的shm_open(3)手册明确规定,共享内存对象名称若包含多个/会触发EINVAL错误,与实际报错一致。

内容的提问来源于stack exchange,提问作者moon548834

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:39:51