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

그리고 쉘 명령을 찾을 수 없을 때 여전히 Python 추적을 얻을 수 있는지 확인하십시오. 여전히 추적이 발생하는 경우 이러한 일이 발생하도록 하는 표준 메커니즘이 생각나지 않습니다. 따라서 사용 중인 셸(아마도 bash)에 대한 자세한 정보를 제공하고 명령의 출력을 추가해야 합니다.

complete | grep python
alias | grep python
python -V

귀하의 질문에.

답변2

이것은 위에서 논의한 것처럼 실제로 우분투 배포판의 버그입니다.스택 오버플로그리고발사대.

해결 방법은 /etc/bash.bashrc파일을 패치하여 해당 행 python /usr/lib/command-not-found -- $1usr/lib/command-not-found -- $1.

관련 정보