
このコマンドを受け取るのではなく、端末にコマンドを誤って入力すると、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
これは上記で議論したように、実際にUbuntuディストリビューションのバグです。スタックオーバーフローそして発射台。
回避策は、/etc/bash.bashrc
ファイルにパッチを適用してその行python /usr/lib/command-not-found -- $1
をusr/lib/command-not-found -- $1
。