質問: 周りに助けてくれる方がおらず、苦戦しています。 今までanaconda上でpythonを使っていたのですが、macOSに最初から入っているpythonを使わなければなりません。 現在優先的にannacondaのpythonが使用されるように設定されています。 プログラムの先頭にshebangを書くことでプリインストールされているpythonでコードが実行できると理解しております。 ``` #!/usr/bin/python ``` しかし、その先のモジュールを実行する際に、全てanaconda上でインストールしてしまっているために、エラーが出てしまいます。 ターミナル上でインストールしようとしても、以下のように返されてしまいます。 ``` $ pip install httplib2 Requirement already satisfied: httplib2 in ./anaconda/lib/python3.6/site-packages (0.12.0) ``` anacondaの外でインストールし直そうとしているのですが、一人では解決することができませんでした。 かなり初歩的な問題で大変恐縮ですが、ご教授いただけましたら幸いです。 どうぞよろしくお願いいたします。
回答: 環境変数 PATH を調整することで、システムにインストールされている Python の環境と Anaconda の Python の環境を分けることができます。 標準のインストール方法を使っていれば、Anaconda のバイナリを認識するために `~/.bash_profile` や `~/.bashrc` などのファイルで PATH に Anaconda のパスを追加しているはずです。この部分を無効化すれば、`python` や `pip` などは Anaconda のものではなく、通常はシステムのものになるはずです(Anaconda とシステム以外にも Python をインストールしている場合は別途確認が必要です)。 現状の PATH を確認するには、以下のシェルコマンドを使ってください。 ``` echo $PATH ``` また、今使っている `python` や `pip` がどこにあるか知るためには `type` コマンドが便利です。 ``` type pip ``` `~/.bash_profile` で Anaconda の PATH を追加している場合、デフォルトでは Anaconda が選択されるようになっています。デフォルトでシステムの Python が選択されるように変えるためには、一旦この追加部分を削除してシェルを再起動するだけで良いです。別途「Anaconda の PATH を追加する」というシェル関数を用意しておくと切り替えができるので便利かもしれません。 また、デフォルトでは Anaconda を使い時々システムのものを使いたいということであれば、PATH はそのままに、alias を使ってシステムの Python の名前を変えてしまうという方法でも良さそうです。 別解?: Anaconda の仮想環境 しかしそもそも、なぜシステムに標準インストールされた Python 処理系を使わなければいけないのでしょうか。 もし「バージョンが違う Python を使いたい」とか「他のライブラリが入った形で利用したい」ということであれば、わざわざシステムの Python に戻すのではなく、`conda create` で作ることができる Anaconda の仮想環境を利用する方が筋が良さそうです。大まかな使い方はドキュメントに書かれています: Managing Python。