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

如何让x86_64架构Python的subprocess.run以arm64运行外部程序?

解决方案:在x86_64架构Python中启动arm64外部程序

以下是两种可行的解决办法:

方法一:用arch命令强制指定架构启动

直接在subprocess.run的命令列表开头加上arch -arm64,强制系统以arm64架构执行目标程序,不受父进程(x86_64 Python)的架构影响。示例代码:

import subprocess
# 替换为你的外部程序路径及参数
subprocess.run(["arch", "-arm64", "/path/to/your/arm64-program", "param1", "param2"])

方法二:通过shell脚本封装启动逻辑

如果需要复用启动逻辑,可以写一个shell脚本封装架构指定操作:

  1. 创建名为run_arm64.sh的脚本,内容如下:
#!/bin/bash
# 替换为你的外部程序路径
arch -arm64 /path/to/your/arm64-program "$@"
  1. 给脚本添加执行权限:
chmod +x run_arm64.sh
  1. 在Python中调用该脚本:
import subprocess
# 传递参数给脚本
subprocess.run(["./run_arm64.sh", "param1", "param2"])

补充说明

  • 若目标程序是通用二进制(同时包含x86_64和arm64架构),arch -arm64会优先调用arm64版本;若仅存在arm64版本,该命令也能确保程序以原生架构运行,不会通过Rosetta转译。
  • 可以通过platform.machine()在Python中确认当前进程架构,输出x86_64则说明处于Rosetta转译环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:46:09