web-dev-qa-db-ja.com

brew installed PythonをデフォルトのPythonとして使用するにはどうすればよいですか?

Mac OS X 10.6.2でHomebrewに切り替えようとしました(finkとmacportを使用した後)。 python 2.7をインストールしました

brew install python 

問題は、Macportとは異なり、python_selectユーティリティが存在しないようであり、私のデフォルトのmac pythonは常にデフォルトであるということです

which python

ください

/usr/bin/python

/usr/bin/pythonはシンボリックリンクではありません

python brewフレーバーをデフォルトのpythonにするにはどうすればよいですか?

160
sam

Homebrewを使用している場合、次のコマンドを使用するとより良い状況がわかります。

brew doctor

出力:

==>/usr/binは/ usr/local/binの前にありますこれは、Homebrewが提供するプログラムの代わりにシステム提供のプログラムが使用されることを意味します。たとえば、これは問題です。 Pythonを作成しました。

.bash_profileを編集して、$ PATHの/ usr/local/binを/ usr/binの前に配置することを検討してください。

106
Vishal

参照: Homebrewでpythonをシンボリックリンクするには?

$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
79
akauppi

クイックフィックス:

  1. /etc/pathsを開く
  2. 行の順序を変更する(最優先)

私の場合、/etc/pathsは次のようになります。

/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

OSXのパスについて詳しく知りたい場合は、この記事が非常に役立ちました。

http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/

59
Bijan

OSX High Sierraで「Pythonをインストールする」を作成しました。 $PATHには他のパスの前に/usr/local/binがありましたが、それでもwhich pythonはシステムのpythonを指していました。

深く見てみると、/usr/local/binにpython実行可能ファイルがないことがわかりました。実行可能ファイルの名前はpython2です。この問題を解決するには、python2を指すシンボリックリンクpythonを作成します。

/usr/local/bin $: ln -s python2 python

38
Sachin Khot

Homebrewインストーラー自体が示唆しているように、これを必ず.bashrcまたは.zshrcに追加してください:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
32
Pamput

Homebrewは、「/ usr/bin」の内容を置き換えません。パスの「/ usr/bin」の前に「/ usr/local/bin」を置き、「which python」を使用すると「/ usr/local/bin/python」が得られます。

/ usr/bin/python(または/ usr/bin/Ruby)を置き換えることは強く推奨されません。

23
Adam Vandenberg

python式はpython3(今のところv3.6.5)を使用するようになり、brewはdirectoryをリンクします:

/usr/local/opt/python -> ../Cellar/python/3.6.5

また、binaryをリンクします。

/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3

それでもpython2.xを使用する必要がある場合は、次を使用します。

brew install python@2

Homebrewのpythonを使用するには、bash用にそのディレクトリをPATHに入れるだけです:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

魚用:

set -x PATH /usr/local/opt/python/libexec/bin $PATH

注意:

  1. これを行うと、pythonのシステムデフォルトバージョンがシャドウされます。
  2. 旧バージョンではpythonを/usr/local/share/pythonにリンクするために使用されていたhomebrew。
16
PickBoy

$ PATHを変更し、これをbashrcまたはbash_profileに追加します。

export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH

詳細はこちら: 問題#89791

12
Aben

PATH環境変数を編集して、homebrew pythonの場所が/ usr/binの前に検索されるようにします。また、PYTHONのような変数をpythonの目的のバージョンに設定し、コマンドラインからpythonではなく$PYTHONを呼び出すように、シェル構成で設定することもできます。

また、別のポスターが述べたように(特にMacの場合)、/ usr/binのpythonを台無しにして別のpythonインストールを指すようにしないでください。もしあなたがそうするなら、あなたは単にトラブルを求めているだけです。

10
JoshAdel

brew install pythonをやった、私の$PATHは良かったが、それでもwhich pythonはシステムをインストールしてくれた。端末を再起動すると修正されました。

9

Homebrew pythonをデフォルトにする手段があると思いますが、私の意見では、問題を解決する適切な方法はシステムpythonパスを台無しにすることではありません:virtualenvを作成する方が良いhomebrew pythonがデフォルトになります(virtualenv --pythonオプションを使用)。 python_selectのようなツールを使用することは、ほとんど常に悪い考えです。

5
Mikhail Korobov

ただやる:

brew install python
brew link python

それを行った後、これをbashrcまたはbash_profileに追加します:

alias python='/usr/local/bin/python2'

楽しい!

1
Aaditya Prasad

High Sierra以降、以下を使用する必要があります。

Sudo chown -R $(whoami) $(brew --prefix)/*

これは、/usr/localをchownできないためです。

0
zaolian

/usr/local/opt/python/libexec/binを明示的に.bash_profileに追加します:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

その後、正常に動作するはずです。

0

/ etc/pathsを編集できます。これが私のものです:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

次に、pythonバージョンのシンボリックリンクを追加します。私の場合

$ cd /usr/local/bin
$ ln -s python3 python

出来上がり!