[英]My python2.7 suddenly stopped working, complaining about a python3.5 script
到目前为止,我的 python27 和 python35/36 安装工作正常。 现在突然间,当我在终端上运行 python2 时,我得到的只是:
$蟒蛇2
File "/usr/lib/python3.5/site.py", line 182
file=sys.stderr)
^
SyntaxError: invalid syntax
为什么 python2 试图访问 python3 站点包脚本? 我怎样才能解决这个问题?
(Ubuntu 16.04 操作系统)
编辑:这就是 output。 如果我使用详细开关:
$ python2 -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
File "/usr/lib/python3.5/site.py", line 182
file=sys.stderr)
^
SyntaxError: invalid syntax
# clear __builtin__._
# clear sys.path
# clear sys.argv
# clear sys.ps1
# clear sys.ps2
# clear sys.exitfunc
# clear sys.exc_type
# clear sys.exc_value
# clear sys.exc_traceback
# clear sys.last_type
# clear sys.last_value
# clear sys.last_traceback
# clear sys.path_hooks
# clear sys.path_importer_cache
# clear sys.meta_path
# clear sys.flags
# clear sys.float_info
# restore sys.stdin
# restore sys.stdout
# restore sys.stderr
# cleanup __main__
# cleanup[1] zipimport
# cleanup[1] signal
# cleanup[1] exceptions
# cleanup[1] _warnings
# cleanup sys
# cleanup __builtin__
# cleanup ints: 5 unfreed ints
# cleanup floats
根据要求将评论转换为回答:
您说您的.bashrc
包含以下行:
export PYTHONPATH="${PYTHONPATH}:/usr/lib/python3.5"
PYTHONPATH
是一种 hack,默认情况下不应设置,除非您亲自在您自己开发的模块的特定目录中进行黑客攻击,您懒得转换为可安装包(如果需要,必须完全兼容 Python 2/3两者都可以工作)。 通过在您的PYTHONPATH
中包含/usr/lib/python3.5
,它表示所有版本的 Python(不仅仅是 3.5)都应该在执行import
时查看默认模块查找位置之前查看那里。
要修复,您需要做的就是:
.bashrc
中注释掉该行(以防止将来出现问题)unset PYTHONPATH
以立即解决问题(或在第 1 步后退出并重新登录)使用多个 python 版本时,请始终确保PYTHOPATH
和PYTHONHOME
指向正确的目录,第一个应指向您的 python bin 文件夹,第二个应指向正确站点包所在的 lib 文件夹
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.