已安装Python 3,运行时出错

已安装Python 3,运行时出错,python,macos,python-2.7,python-3.x,Python,Macos,Python 2.7,Python 3.x,我在Mac上安装了Python 3.5.1,与Python 2.7.10一起安装。当我运行python--version时,它返回python2.7.10,当我运行python3--version时,它返回python3.5.1,这将确认python3已正确安装。但是,每当我尝试在终端中使用python3运行命令或文件时,都会出现以下错误: 致命的Python错误:Py_初始化:无法加载文件系统 编解码器文件 “/System/Library/Frameworks/Python.framewor

我在Mac上安装了Python 3.5.1,与Python 2.7.10一起安装。当我运行
python--version
时,它返回
python2.7.10
,当我运行
python3--version
时,它返回
python3.5.1
,这将确认python3已正确安装。但是,每当我尝试在终端中使用python3运行命令或文件时,都会出现以下错误:

致命的Python错误:Py_初始化:无法加载文件系统 编解码器文件 “/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/init.py”, 第123行 引发CodeRegistryError\ ^SyntaxError:无效语法

当前线程0x00007fff72bb4000(最新调用优先):中止 陷阱:6 Farshids-MacBook-Pro-2:mysite Sasha$python3致命Python 错误:Py_初始化:无法加载文件系统编解码器文件 “/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/init.py”, 第123行 引发CodeRegistryError\ ^SyntaxError:无效语法

当前线程0x00007fff72bb4000(最新调用优先):中止 陷阱:6

并且还会弹出一条消息说
“Python意外退出。”
正如您在错误中看到的,它提到了2.7,这意味着它可能试图使用2.7运行代码


我该如何解决这个问题?顺便说一句,我安装Python3是为了遵循Django教程,如果没有Python3,该教程将无法工作,而且我对Python非常了解,能够进行调整

很可能$PYTHONPATH已设置为使用Python2.x。要验证此类型

echo $PYTHONPATH
如果您看到与Python2.x相关的路径,请尝试取消设置它

unset PYTHONPATH

如果要将shebang行(第一行以#!开头)作为python3(#!/usr/bin/python3.5)路径执行,则可以将其保留为python3.5路径。但是,您得到的错误是由于您的脚本和您正在使用的python解释器之间的语法不兼容造成的。研究python3.x版本中的更改,并相应地对脚本进行更改。你可以看一下以供参考

存在冲突,因为您在环境中设置了两个python版本,并且您肯定已将PYTHONPATH变量设置为python 2.7

所以,在运行python之前,您可以在脚本中重置env path,以便只获取所需的内容

我不知道Mac操作系统中的程序,在Windows环境中,我做那个脚本

例如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
运行Python2.7的


在最初的情况下,运行Python3并为python2添加Lib。所以它可以工作,因为py3使用unicode基本编码,py2使用ANSI编码,如果我不得不猜测py3和py2的安装看起来有冲突的话。在我看来,第123行似乎是按照python3语法格式化的,这就是py2解释器抛出语法错误的原因。您是如何从python网站安装python3的?@MikeLane的。刚刚下载并运行了安装程序。@SashaAhrestani那么您是如何解决它的?检查您设置了哪些环境变量。确保没有任何与Python相关的内容。echo$PYTHONPATH显示一组路径。我检查了我的/System/Library/Frameworks/Python.framework/Versions文件夹,发现其中唯一的文件夹是3.5。我认为Python 2已经完全消失了!PYTHONPATH有一堆路径,其中包含“/Versions/2.7”,而该文件夹现在不存在。我应该用3.5替换所有这些路径吗?我可以给你一个完整的列表。如果我想
unset PYTHONPATH
,那是否意味着我也必须
set
它?你是否尝试过从PYTHONPATH中删除
Versions/2.7
?如果您使用的是非标准库,请不要取消设置,只需删除2.7相关路径即可。顺便说一句,我建议您使用
virturalenv
,这样您就可以在不更改系统变量的情况下使用多个版本的python。