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

为何macOS信任未签名Python C扩展的wheel包却拦截tar包?

macOS下Chrome下载的Python C扩展tar包导入失败的解决办法

问题情况

我同时提供tar包和wheel包格式的Python C扩展,在macOS上安装wheel包完全没问题,但把PYTHONPATH指向Chrome下载的tar包内的扩展时,直接弹出“未验证开发者”提示框,关掉后就出现导入错误:

>>> import devsim
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1/lib/devsim/__init__.py", line 8, in <module>
    from .devsim_py3 import *
ImportError: dlopen(/Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1/lib/devsim/devsim_py3.so, 0x0002): tried: '/Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1/lib/devsim/devsim_py3.so' (code signature in <ED44BB00-36CF-39A8-8999-8309CBA016E4> '/Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1/lib/devsim/devsim_py3.so' not valid for use in process: library load disallowed by system policy)

后来发现用curl下载的tar包就正常,应该是Chrome给文件加了特殊属性导致的。

解决步骤

1. 移除隔离属性

Chrome下载的文件会被macOS打上com.apple.quarantine(来自互联网)的标记,这会触发系统安全限制。直接用xattr命令删掉这个属性就行:

  • 针对整个解压后的目录批量处理:
xattr -r -d com.apple.quarantine /Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1
  • 或者只处理出问题的.so文件:
xattr -d com.apple.quarantine /Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1/lib/devsim/devsim_py3.so

2. 测试效果

执行完命令后,重新打开终端(确保环境变量刷新),再试导入:

import devsim

一般这时候就能正常导入了。

3. 避免后续踩坑

  • 直接用curl下载tar包,不会触发隔离标记
  • 如果还是想用Chrome下载,解压前先给tar包本身去掉属性:
xattr -d com.apple.quarantine /Users/jsanchez/Downloads/devsim_macos_v2.3.7rc1.tar.gz

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:31:18