我在Mac上安装了 Python 3.5.1 ,与Python 2.7.10一起。当我运行python --version
时,它返回Python 2.7.10
,当我运行python3 --version
时,它返回Python 3.5.1
,这应该确认Python 3已正确安装。但是,每当我尝试在终端中使用 python3 运行命令或文件时,它就会出现此错误:
致命的Python错误:Py_Initialize:无法加载文件系统 编解码器文件 " /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/的初始化的.py&#34 ;, 第123行 提出CodecRegistryError,\ ^ SyntaxError:语法无效
当前线程0x00007fff72bb4000(最近一次呼叫):中止 陷阱:6 Farshids-MacBook-Pro-2:mysite Sasha $ python3致命Python 错误:Py_Initialize:无法加载文件系统编解码器文件 " /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/的初始化的.py&#34 ;, 第123行 提出CodecRegistryError,\ ^ SyntaxError:语法无效
当前线程0x00007fff72bb4000(最近一次呼叫):中止 陷阱:6
并弹出一条消息说"Python quit unexpectedly."
正如您在错误中看到的,它提到了2.7,这意味着它可能尝试使用2.7来运行代码。
我该如何解决这个问题?顺便说一句,我安装了Python 3以遵循Django教程,该教程在没有Python 3的情况下无法工作,而且我对Python的知识非常有能力进行调整。
答案 0 :(得分:1)
很可能$ PYTHONPATH设置为使用你的Python2.x.验证此类型
echo $PYTHONPATH
如果您看到与Python2.x相关的路径,请尝试取消设置。
unset PYTHONPATH
答案 1 :(得分:0)
如果你将它们作为可执行文件执行,你可以将shebang行(从第一行的#!开始)保留为python3(#!/ usr / bin / python3.5)路径。但是你得到的错误是由于脚本和你正在使用的python解释器之间的语法不兼容造成的。研究python3.x版本中的更改并相应地更改脚本。您可以查看this以供参考。
答案 2 :(得分:-1)
存在冲突,因为你在环境中设置了两个版本的python并且你肯定将PYTHONPATH变量设置为python 2.7
因此,您可以重置脚本中的env路径,以便在运行python
之前获取所需的内容我不知道Mac OS中的程序在Windows Env中我做那个脚本
例如ps1脚本
$Env:Py2 = "C:\Python27"
$Env:PYTHONPATH = "$Env:Py2;$Env:Py2\Lib;$Env:Py2\DLLs;$Env:Py2\Lib\lib-tk"
$Env:Path += ";$Env:Py2;$Env:Py2\Scripts\"
python
运行python 2.7
在最初的情况下,运行python 3并为python2添加Lib。所以它可以工作,因为py3使用unicode base编码而py2使用ANSI编码