Mac上Homebrew安装的Python启动报错:目录错误与语法异常
Python3执行报错:
//: is a directory 及文件损坏修复方案 问题重现
运行python3或python3 --version时触发如下错误:
% python3 /opt/homebrew/bin/python3: line 1: //: is a directory /opt/homebrew/bin/python3: line 3: //: is a directory /opt/homebrew/bin/python3: line 4: //: is a directory /opt/homebrew/bin/python3: line 5: //: is a directory /opt/homebrew/bin/python3: line 7: syntax error near unexpected token `(' /opt/homebrew/bin/python3: line 7: `���� 0� H__PAGEZERO�__TEXT@@__text__TEXT;�__stubs__TEX>� __cstring__TEXT�>��>__unwind_info__TEXT�?X�?�__DATA_CONST@@@@__got__DATA_CONST@�@�__DATA�@__bss__DATA�H__LINKEDIT����M4���3���0���0 PP�% /usr/lib/dyldY*(�;��g�g�2 x /opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/Python 8d'/usr/lib/libSystem.B.dylib&��)�� ��H����_��W��O��{������ �'X�C���`5�� � @������������������������T��J�_8� �_�qA��T� ��*@8_���i � @�� ��<���R�� " ��3����5�! �����R�����0 Ձ` ը���` ��p ��R�R�� �BT�^ յ �����@99� Ձ] ��������9�\ ����R�Ri� �Tc������� �0 աZ �"�R{�t�� ��C�� @��C���������_���!0 � �RN�����O��{������W���=��45�� �r�����#���!�RN�1T�@���T��RI���)��35�{B��OA�����_�� � X@�p �A�R"�R(� �R#���{���� ��@���'�{����� �@�R � �R��{����a
错误为随机触发,曾重装Python3.11后正常运行一段时间,某天突然复发。
诊断信息
执行以下命令得到的结果:
% od -tx1 /opt/homebrew/bin/python3 | head -n 5 0000000 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0000020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d * 0000100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0000120 0a 2f 2f 20 50 4c 45 41 53 45 20 44 4f 20 4e 4f % file /opt/homebrew/bin/python3 /opt/homebrew/bin/python3: data
原因分析
从file命令结果可见,原本应为可执行文件的/opt/homebrew/bin/python3被识别为data类型,说明文件内容已损坏。od命令输出显示文件开头存在大量异常的//和-字符,不符合正常Python可执行文件的结构,大概率是文件系统错误、意外写入或Homebrew缓存损坏导致。
修复步骤
- 卸载损坏的Python3.11
brew uninstall python@3.11 - 清理残留文件与缓存
brew cleanup python@3.11 rm -rf /opt/homebrew/bin/python3 rm -rf /opt/homebrew/Cellar/python@3.11 - 重新安装Python3.11
brew install python@3.11 - 验证修复结果
python3 --version
若问题仍存在,可执行diskutil verifyVolume /检查系统盘文件系统是否有错误,必要时进行修复。
内容的提问来源于stack exchange,提问作者Sam Germain
相关产品推荐
相关产品推荐

