如何更改 Visual Studio 代码内的终端以使用非 Rosetta 终端,即使用 arm64 终端?

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

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

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

现在我在 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 下运行并正在寻找 intel 版本的库。

当我在常规 Mac 终端应用程序中运行

uname -m
时,我看到
arm64

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

python python-2.7 visual-studio-code arm64 apple-m1
3个回答
8
投票

我不熟悉 VSCode,但您可以使用

arch
命令手动强制选择启动的任何内容的架构切片(请参阅
man arch
)。

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

./script.py

然后你可以像这样强制使用任一架构:

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

1
投票

这个问题一直发生在我身上,直到我重新安装 VSCode(arm64 版本)。当我买了一台新 Mac 并使用迁移工具时,它采用的是 Intel 版本,这最终给我带来了很多问题。安装正确版本的 VSCode 为我解决了这一切。

要在 macOS 上卸载 VS Code,请打开 Finder 并转到 Applications。右键单击 Visual Studio Code 应用程序并选择 移至垃圾箱

完成后,您可以从他们的网站或使用

brew install visual-studio-code
重新安装它(通过在
brew config
的输出中检查它来确保brew是arm64,否则您可能会再次遇到此问题)。


0
投票

我在“强制”通用二进制文件在 Rosetta 2 下运行时遇到了问题,因此您可能需要下载 Intel 版本并使用稍作修改的名称(例如

VSCode (Intel)
)进行安装,以便它们可以共存 -旁边。

这将强制整个进程树在模拟下运行,这将处理其下的所有 shell 和调试会话以相同(模拟)的方式运行。请注意这可能会如何干扰预先存在的扩展。

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