python3回溯错误

python3回溯错误

每当我在终端中错误输入任何命令而不是得到此命令时,Error:Command not found我都会收到此 python 消息错误

    Traceback (most recent call last):
  File "/usr/lib/python3.3/site.py", line 631, in <module>
    main()
  File "/usr/lib/python3.3/site.py", line 616, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python3.3/site.py", line 284, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/lib/python3.3/site.py", line 260, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/lib/python3.3/site.py", line 250, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/lib/python3.3/sysconfig.py", line 580, in get_config_var
    return get_config_vars().get(name)
  File "/usr/lib/python3.3/sysconfig.py", line 530, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/lib/python3.3/sysconfig.py", line 403, in _init_posix
    from _sysconfigdata import build_time_vars
  File "/usr/lib/python3.3/_sysconfigdata.py", line 6, in <module>
    from _sysconfigdata_m import *
ImportError: No module named '_sysconfigdata_m'

我知道在安装 python3.x 并尝试将其设为我的默认解释器后,此错误就这样发生了。

$ lsb_release -rd
Description:    Linux Mint 14 Nadia
Release:    14

/usr/lib/command-not-found也运作良好。
我可以恢复到默认的 python 版本吗?我只是做了

sudo ln -sf /usr/bin/python2.7 /usr/local/bin/python

将 2.7 作为默认解释器就足够了吗?
知道如何摆脱这个地狱消息错误吗?

答案1

改变 Ubuntu 派生发行版中的默认 Python 解释器是一个坏主意。很多系统实用程序都希望python能够解析到预期的版本,但如果没有解析到预期的版本,就会非常不高兴。

更好的是(显然取决于外壳):

export PATH="${HOME}/bin:${PATH}"
ln -s /usr/bin/python2.7 $HOME/bin/python

进行中你的默认解释器,但保留系统实用程序如他们所期望的那样。

添加以回复评论

我对为什么这不起作用的第一个猜测是您没有完全清理所做的更改。

sudo rm /usr/local/bin/python
sudo apt-get install --reinstall python

应该清除您在此处报告的更改,并将发行版默认 Python 解释器恢复为系统范围的默认值。

然后,删除我上面建议您创建的用户别名:

rm $HOME/bin/python

并检查当未找到 shell 命令时是否仍然获得 Python 回溯。如果您仍然得到回溯,我想不出会导致这种情况发生的标准机制。因此,您需要向我们提供有关您正在使用的 shell(大概是 bash)的更多信息,并添加命令的输出

complete | grep python
alias | grep python
python -V

对于你的问题。

答案2

这实际上是 ubuntu 发行版中的一个错误,如上讨论的堆栈溢出发射台

修复方法是修补您的/etc/bash.bashrc文件,将行更改python /usr/lib/command-not-found -- $1usr/lib/command-not-found -- $1.

相关内容