解决Ubuntu中python3会从Python2中导入包,引起语法错误的问题

今天在为Ubuntu18.04安装Anaconda3时遇到了这个问题:输入conda list会报错:

File "/home/zqy/LIBRARY/anaconda3/lib/python3.7/site-packages/conda/common/io.py", line 7, in <module>
    from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, Executor, Future, _base, as_completed  # NOQA
  File "/usr/lib/python2.7/dist-packages/concurrent/futures/__init__.py", line 8, in <module>
    from concurrent.futures._base import (FIRST_COMPLETED,
  File "/usr/lib/python2.7/dist-packages/concurrent/futures/_base.py", line 414
    raise exception_type, self._exception, self._traceback
SyntaxError: invalid syntax

仔细分析错误,发现python3居然从python2的dist-packages目录中导入依赖的包! python3肯定不能依赖python2呀,语法都不一样,所以会报错!按照这个思路,想到是Ubuntu系统中不同版本Python优先级和默认python版本的问题,终端输入命令:

 sudo update-alternatives --config python

发现结果是这样:

 sudo update-alternatives --config python
有 3 个候选项可用于替换 python (提供 /usr/bin/python)。

  选择       路径              优先级  状态
------------------------------------------------------------
* 0            /usr/bin/python2     150       自动模式
  1            /usr/bin/python2     150       手动模式
  2            /usr/bin/python3     100       手动模式
  3            /usr/bin/python3.7   2         手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:

很明显默认是python2,且python3的优先级低于python2。于是立即输入2,并输入命令提高Python3的优先级:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

之后,Ctrl+T打开一个终端,输入conda info ,即不会报错!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值