如何强制Python进入64位模式



我在我的MacBook Air (M1, 2020)上有一个奇怪的错误,其中python3.8正在从自制brew install python@3.8安装为64位二进制文件,但正在以32位模式运行,从而在尝试下载软件包时导致错误。

这是我尝试过的:

  1. 重新安装并确认可执行文件在32位运行
$ brew reinstall python@3.8 #installs to /opt/homebrew/opt/python@3.8/bin/python3
$ python3.8 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**64)'
> 7fffffffffffffff False
  1. 查看二进制文件
  2. 的架构
$ file /opt/homebrew/opt/python@3.8/bin/python3
> /opt/homebrew/opt/python@3.8/bin/python3: Mach-O 64-bit executable arm64

从上面的输出可以看出,尽管在32位模式下运行,可执行文件实际上是64位的。

  1. 额外安装Rosetta 2, mac更新应该可以解决这个问题
$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license
  1. 尝试在64位arch中强制二进制
$ arch -x86_64 /opt/homebrew/opt/python@3.8/bin/python3
> arch: posix_spawnp: /opt/homebrew/opt/python@3.8/bin/python3: Bad CPU type in executable

这里是相关的,但遗憾的是对我的需求没有帮助,堆栈溢出票:

如何在mac -os- x上强制使用64位python
Tensorflow Package的安装问题
如何确定python是在32位还是64位模式mac
可执行mac Rosetta 2指令中CPU类型错误

任何想法都会有帮助,谢谢!

原来我的命令出错了:

python3.8 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**64)'

应:

python3.8 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'

当你在64位模式下运行python时返回true。

这个特定的问题可能是别的问题,因此我结束这个问题。

最新更新