chu*_*hts 7 python macos rosetta-2
我有一个 python 应用程序,下游依赖于仅作为 X86 提供的动态库。
该应用程序在 X86 MacOS 计算机上运行,但在 ARM MacOS 计算机上运行失败,并显示ImportError.
我已经lipo -archs在库上运行过,它们x86_64只是。我在 virtualenv 中运行 Python,它是通用二进制文件x86_64 arm64。应用程序在安装时构建的中间目标文件也是通用二进制文件x86_64 arm64。
我怀疑 Python 作为 ARM 应用程序本地运行,但由于依赖关系,我需要它作为 X86 应用程序运行。
是否有 MacOS 或 Rosetta2 选项或环境设置可供我使用来强制执行 X86 Python 二进制文件而不是 ARM 二进制文件?
jki*_*hen 14
Conda 可以在 Mac Arm 上创建 x86 环境。
conda create -n my_x86_env -y
conda activate my_x86_env
conda config --env --set subdir osx-64
Run Code Online (Sandbox Code Playgroud)
conda install python=3.10
Run Code Online (Sandbox Code Playgroud)
conda install numpy
pip install networkx
Run Code Online (Sandbox Code Playgroud)
对于此环境 ( my_x86_env),python 和 pip 是 x86 版本,因此它们只会从 anaconda、conda-forge 和 pypi 获取 x86 版本。您创建但未运行的任何环境都conda config --env --set subdir osx-64将是arm64环境。因此,您可以在需要时获得本机速度,并在需要时获得与纯 x86 软件包的兼容性。
看起来唯一的方法是安装 X86 版本的 python。
我在这里找到了指导方法 - https://towardsdatascience.com/how-to-use-manage-multiple-python-versions-on-an-apple-silicon-m1-mac-d69ee6ed0250
但无法完全让 pyenv 构建部分正常工作。
所以在Rosetta i386终端我brew86安装了python。这将一个 X86 版本的 python 放入其中/usr/local/bin/python3,我可以从中创建一个仅限 X86 的 virtualenv。
总的来说,这些步骤来自上面的链接(减去 pyenv 部分):
/usr/local/bin/brew/usr/local/bin/python3)| 归档时间: |
|
| 查看次数: |
13015 次 |
| 最近记录: |