質問: macOS High Sierra 10.13.6です。 pythonの環境構築がよくわからず(多分)ぐちゃぐちゃになってしまいました。 色々と不明点あるのですがとりあえず二点お聞きしたいです。 * `/usr/bin/python`と`/Library/Frameworks/Python.framework/Versions/3.7/`の違いはなんですか それぞれ何でインストールされたのでしょうか。`brew list`ではpython見つかりませんでした。 * それぞれのpipコマンドはどのように使い分けたらよいのでしょうか。 pipとpip3によって出現するパッケージが異なったためか `It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.` というエラーが出てしまいました。一度pip3のパッケージを全てアンインストールし、pipコマンドで再度インストールしたら成功しました。 ただ`pip list`で `DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.` 上の用に2.7についてのエラーがでることがわかりません。pipのPATHは3.7に通っているのではないのでしょうか。 ``` $ which python /usr/bin/python $ which pip /Library/Frameworks/Python.framework/Versions/3.7/bin/pip $ which pip2 /usr/local/bin/pip2 $ which pip3 /Library/Frameworks/Python.framework/Versions/3.7/bin/pip3 ```
回答: > > /usr/bin/pythonと/Library/Frameworks/Python.framework/Versions/3.7/の違いはなんですか > > それぞれ何でインストールされたのでしょうか。brew listではpython見つかりませんでした。 > > > /usr/bin/pythonは何もしなくても入っているやつで、最近のUNIX系OSならpythonはデフォルトで入れているものは多いです。これはシステムのpythonなので触ってはいけません。 /Library/Frameworks/Python.framework/Versions/3.7/のはインストーラーとかで入れたんじゃないでしょうか。 > > それぞれのpipコマンドはどのように使い分けたらよいのでしょうか。 > > (以下略) > > > さすがに断片的な情報からは答えづらいので、無回答とさせていただきます。 そもそもシステムに直接インストールしたpythonを取り扱うのは面倒くさいので、仮想環境を使うことをおすすめします。python3があるなら標準のvenvが使えます。 とりあえず、以下のように打つことで、ホームディレクトリの`.venvs`ディレクトリ以下に`env1`という名前の仮想環境を作れます。どちらの名前もお好みで構いません。 ``` $ cd ~ $ mkdir .venvs $ python3 -m venv --copies .venvs/env1 ``` あとは`.bashrc`の末尾に、 ``` alias venvactivate='source $HOME/.venvs/env1/bin/activate' ``` と書いて保存し、`source ~/.bashrc`などとするかターミナルを立ち上げ直して読み込み直したあと、`venvactivate`コマンドを打てば仮想環境がアクティベートできます。こちらも名前はお好みで構いません。仮想環境を抜けたければ`deactivate`コマンドを打ちます。 仮想環境をアクティベートした状態でpipコマンドを打てば問題なく仮想環境のpipになるので、心置きなくライブラリを入れられます。 venv --- 仮想環境の作成 — Python 3.7.2 ドキュメント