首页 > 解决方案 > 如何更改 Visual Studio 代码中的终端以使用非 Rosetta 终端,即使用 arm64 终端?

问题描述

我是 python 新手,正在尝试运行 python 2.7脚本。获得了 python 2.7 的 pip 并从 mac 终端 shell 安装了 pyCrypto 的依赖项。

我想尝试下载的python脚本,当我使用python2执行它时,它在终端应用程序中运行良好。

现在我在 vscode 中打开它并尝试在其终端中运行脚本,我得到了

ImportError: dlopen(/Users/xxx/Library/Python/2.7/lib/python/site-packages/Crypto/Cipher/_DES3.so, 2): no suitable image found.  Did find:
        /Users/xxx/Library/Python/2.7/lib/python/site-packages/Crypto/Cipher/_DES3.so: mach-o, but wrong architecture
        /Users/xxx/Library/Python/2.7/lib/python/site-packages/Crypto/Cipher/_DES3.so: mach-o, but wrong architecture

当我 uname -m在 M1 Mac 上的 vscode 终端(zsh)中运行时,我看到输出x86_64,暗示终端正在 Rosetta 下运行并正在寻找库的英特尔版本。

当我uname -m在常规的 mac 终端应用程序中运行时,我看到arm64

如何更改 vscode 内的终端以使用非 Rosetta 终端?或者我如何让脚本从 vscode 中运行?

标签: pythonpython-2.7visual-studio-codearm64apple-m1

解决方案


我对 VSCode 不熟悉,但是您可以手动强制使用arch命令启动的任何东西选择架构切片(请参阅参考资料man arch)。

如果您有一个通常会启动的脚本,例如:

./script.py

然后你可以像这样强制任何一种架构:

arch -x86_64 ./script.py
arch -arm64 ./script.py

推荐阅读