2.7.9からpython 3.4.3(非常に単純でした))に切り替えた後、python 2.7.9でスクリプトの一部をテストしたいことがよくあります同僚と共有する前に、自作からコンパイルされたすべてのものを備えたOSXヨセミテプラットフォームを使用しています。
状況は非常に醜いものでした(各ステップでPATH
esとPYTHONPATH
を設定)-私が発見するまで pyenv これは非常に簡単で、自作を使用して簡単にインストールできます。ここまでは順調ですね。
ただし、このバージョンのpythonを使用しているため、自作のバージョンと必ずしもうまく機能するとは限りません。さらに、システムのpythonに戻すことができ、より一般的にはpyenvがそれにアクセスできることがわかりました。
$ pyenv versions
system
2.7.9
* 3.4.3 (set by /usr/local/var/pyenv/version)
しかしhomebrewによってコンパイルされたpython
sのエントリを追加するにはどうすればよいですか?
(pyenvのインストールガイドで説明されているように)ホームディレクトリにpyenvをインストールしてから、_~/.pyenv/versions
_から$(brew --cellar)/python
へのシンボリックリンクを作成できます。
_ln -s $(brew --cellar python)/* ~/.pyenv/versions/
_
Homebrewが最近機能する方法では、これは2.xと3.xの両方を採用します。
Pyenvpythonとhomebrewpythonを一緒に使用したい場合は、homebrewpythonの名前をバージョン以外のものにする必要があります。そうしないと、pyenvが使用するディレクトリ名と衝突します。たとえば、pyenv python 2.7.11およびhomebrew python 2.7.11をインストールする場合は、次のようにすることができます。
for i in `ls $(brew --cellar python)/`; do
ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew;
done
for i in `ls $(brew --cellar python3)/`; do
ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew;
done
基本的に、これにより$ HOME/.pyenv/versionsに '-brew'が追加されたディレクトリが作成され、pyenvpythonと衝突しなくなります。
@ johnizzo1 の答えに追加するだけで、python2はpython@2
になっているので、python3forループを次のように変更する必要があります。
for i in `ls $(brew --cellar python)/`; do
ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew;
done
for i in `ls $(brew --cellar python@2)/`; do
ln -s $(brew --cellar python@2)/$i $HOME/.pyenv/versions/$i-brew;
done
バージョンを再リンクするための便利な関数:
pyenv-brew-relink() {
rm -f "$HOME/.pyenv/versions/*-brew"
for i in $(brew --cellar python)/*; do
ln -s --force $i $HOME/.pyenv/versions/${i##/*/}-brew;
done
for i in $(brew --cellar python@2)/*; do
ln -s --force $i $HOME/.pyenv/versions/${i##/*/}-brew;
done
}