オートメーション化したいことがあって、久しぶりにPythonを書いていました。いわゆる退屈なことはPythonにやらせよう、ですね。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
ちなみにこの本、原著の英語版なら…全文が…ネットに…らしいです…
話を戻します。長いことコマンドラインなんかまともに触っていなかったのに、あるパッケージが必要になって久々にbrew doctor
。激おこでした。
HomebrewとAnacondaが干渉するみたいです。warningの内容は取っておいていなかったけど、この記事に載っていたのが含まれていたと思う。一部引用させていただきます。
Warning: Anaconda is known to frequently break Homebrew builds, including Vim and
MacVim, due to bundling many duplicates of system and Homebrew-available
tools.
If you encounter a build failure please temporarily remove Anaconda
from your $PATH and attempt the build again prior to reporting the
failure to us. Thanks!
Warning: python is symlinked to python3
This will confuse build scripts and in general lead to subtle breakage.
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
//anaconda/bin/curl-config
//anaconda/bin/freetype-config
//anaconda/bin/libdynd-config
//anaconda/bin/libpng-config
//anaconda/bin/libpng16-config
//anaconda/bin/python3-config
//anaconda/bin/python3.5-config
//anaconda/bin/python3.5m-config
//anaconda/bin/xml2-config
//anaconda/bin/xslt-config
/usr/local/lib/libecomlodr.dylib
1つ目
Warning: Anaconda is known to frequently break Homebrew builds,
まじで?
Anacondaにパスが通らなくすればいいとのことですが、それもめんどくさいので.bash_profileを以下のように最上位になっていた優先度を下げることで解決しました。
export PATH="$PATH:$HOME/anaconda3/bin"
2つ目
こりゃ問題でしょうねえ。
1つ目のようにすればシステムのpython
が使われるようになるので解消しました。ただ、Python 3しか使わないのにいちいちpython3
とタイプするのはつらいので以下のようにエイリアスを設定してみました。
alias py3='python3'
3つ目
以下の記事を参考に解消させることができました。
エイリアスにより、正規表現を使ってbrew
のときだけ$PATH
から当該パスを取り除くというもの。
alias brew="env PATH=${PATH/${HOME}\/anaconda3\/bin:/} brew"
これでwarningはすべて消え、ready to brewになりました。
あとがき
pyenvからanacondaをインストールすれば大丈夫*1なような記述がありましたが、私の場合は変化ありませんでした。結局、Homebrew + 素のAnacondaに落ち着きました。おかげで何度もAnacondaをインストールし直すはめに*2。てか、Anaconda重いな… アップデートしたら1 Gくらい増えたぞ。