私の環境設定に何か大きな問題が起きています。学習中なので、Macbook Pro に Mac OSX El Capitan を再インストールし、最初からインストールと設定を開始することにしました。使用しているシェルは ZSH で、Oh-My-ZShell で少し設定しました。
私の $PATH と Python:
~ ❯ echo $PATH
/Users/edchigliak/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/edchigliak/bin
~ ❯ python --version
Python 2.7.10
~ ❯
以下のスクリーンショットは、 に 2 つの Python2 がインストールされており/usr/bin
、 に Homebrewed Python3 がインストールされていることを明らかに示しています/usr/local/bin
。
結果は次のとおりですprintenv
(PATH および SHELL に関連するエントリのみ)。
PATH=/Users/edchigliak/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/edchigliak/bin
PWD=/Users/edchigliak
SHELL=/usr/local/bin/zsh
SHLVL=2
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lRGo5iu4NA/Listeners
TERM=screen-256color
ZSH=/Users/edchigliak/.oh-my-zsh
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
_=/usr/bin/printenv
私の最初のエントリー.zshrc
:
export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin
どうもありがとう!
答え1
シェルプロンプトで入力する場合、正確に名前が付けられたバイナリのみpython
が考慮されます。python
python
を実行したい場合python3
、それを実現する簡単な方法は、個人のシェル起動ファイルに関数またはエイリアスを設定することです。
python
システム全体に対してポイントを設定することは絶対にしないでください。python3
そうしないと、Python バージョン 2 を必要とする一部の OS およびサードパーティ ツールが動作しなくなりますpython
。これら 2 つは相互に互換性のない言語 (または方言) です。
ここで何が起こっているかを確認すると、command
プロンプトに と入力すると、シェルは 内のディレクトリを反復処理PATH
し、各ディレクトリで正確に名前が付けられた実行可能ファイルを検索します。これは、ファイルが見つかるか、検索する場所がなくなるまで続きます。またはまたは のcommand
ように、偶然類似している場合でも、他の名前のファイルは単に無視されます。エイリアスまたは関数がある場合は、代わりにそれらが使用されますが、エイリアスまたは関数によって呼び出される他のコマンドを見つけるために が参照される可能性があります。xcommand
commandante
command3.xx
PATH
答え2
シェルはPATHを検索します完全一致と入力するとpython
、 に一致する実行可能ファイルを検索しようとしますが^python$
、^python...$
は同じではありません。
あなたの場合、/usr/local/bin に python がないか、権限の問題があり、スキップされる可能性があります。
1) がないpython
場合/usr/local/bin
:
使用したい Python インタープリターを指すsudo ln -s /usr/local/bin/python3.6 /usr/local/bin/python
ソフト リンクを作成するには、を使用できます。PATH では最初に /usr/local/bin が検索されるため、シェルはこのリンクを見つけるはずです。python
2) ファイルは存在するが/usr/local/bin
、実行する許可してください。試してくださいsudo chmod a+x /usr/local/bin/python
。
今のところ他の問題は考えられません。