Mac M1 上的 VirtualBox Python API:尝试导入 VBoxPython3.so,但出现错误:“不兼容的架构(有 'arm64',需要 'x86_64')”

问题描述 投票:0回答:1

我正在尝试在 Mac M1 上使用 VirtualBox Python API。尝试导入 VBoxPython3.so 时,出现 ImportError,内容如下:

ImportError: dlopen(/Applications/VirtualBox.app/Contents/MacOS/VBoxPython2_7.so, 0x0002): tried: '/Applications/VirtualBox.app/Contents/MacOS/VBoxPython2_7.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

如前所述,我使用的是 ARM64 架构,并且安装了 VirtualBox 的 ARM64,那么为什么我会收到此消息:

need 'x86_64'

系统详情:

  • uname -a
    的输出是
    Darwin KiransMacbookPro.local 22.3.0 Darwin Kernel Version 22.3.0: Thu Jan  5 20:48:54 PST 2023; root:xnu-8792.81.2~2/RELEASE_ARM64_T6000 arm64
  • uname -m
    的输出是
    arm64

我首先通过 conda 安装了 python 3.11。然后,我按照以下步骤操作:

  1. 我在 https://www.virtualbox.org/download/testcase/VirtualBox-7.0.97_BETA5-158690-macOSArm64.dmg 安装了 VirtualBox 的 ARM64 beta 版本
  2. 我设置了相关的环境变量:
    export VBOX_INSTALL_PATH=/Applications/VirtualBox.app/Contents/MacOS
  3. 我导航到
    /Applications/VirtualBox.app/Contents/MacOS/sdk/installer
    ,然后运行
    sudo -E python vboxapisetup.py install
  4. 我运行了
    pip install virtualbox
    ,然后确认 virtualbox 和 vboxapi 软件包都是通过
    pip list
  5. 安装的
  6. 我运行
    python -m "import virtualbox; _vbox = VirtualBox(); print('Success')"
    来查看实例化 VirtualBox 是否有效

这导致

vboxxpcom.py
出现错误,内容为:
Cannot find VBoxPython module (tried: VBoxPython3_11, VBoxPython3, VBoxPython)

我首先确认以下文件存在:

/Applications/VirtualBox.app/Contents/MacOS/VBoxPython3.so
。然后,我尝试手动导入它,如下所示:
python -m "import sys; sys.path.append('/Applications/VirtualBox.app/Contents/MacOS'); __import__('VBoxPython3')"
。这与导致
vboxxpcom.py
中错误的导入相同。该行返回:
ImportError: dlopen(/Applications/VirtualBox.app/Contents/MacOS/VBoxPython2_7.so, 0x0002): tried: '/Applications/VirtualBox.app/Contents/MacOS/VBoxPython2_7.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

macos virtualbox apple-m1
1个回答
0
投票

原来我的

python
库是一个
x86_64
版本。尝试安装
arm64
版本的 python(或者在我的例子中,conda)。

© www.soinside.com 2019 - 2024. All rights reserved.