AnacondaからPipenvに乗り換えてArcGIS API for Pythonをインストールした。
Anacondaを使っていたが大規模な組織の利用は有償化されたとのことでPipenvに乗り換えた話。
- Anacondaが有償になっていた
- Anaconda(Miniconda)のアンインストール
- 公式からPythonをDL、インストール
- Pipenvのインストールと仮想環境作成
- 仮想環境の保存先をデフォルトから変更
- 仮想環境の再作成
- ArcGIS API for Pythonのインストールと動作確認
- Pipenv使ってみた所感
Anacondaが有償になっていた
転職して以降全くと言っていいほどコーディングする機会がなくなり、Pythonに関する情報もほとんど入ってこなくなったのだが、どうやらAnaconda(正確にはAnacondaパッケージリポジトリ)が200人以上の規模の組織で利用する際等は有償となっていたらしい。 Qiitaに詳しい情報をまとめてくれている記事がある。
個人的に使う分には全く問題ないが、仕事で使うことになった場合(あるのだろうか…)の代替は探しておきたい。ということで、調べたらPipenvを使うと良さそうなことが分かったので環境構築時のメモを残しておく。
といっても内容はほとんどが参考にした以下のブログと同じだ。
ただし、本稿では、加えて以下を行った。
- 仮想環境が作成される際の保存先を任意のディレクトリに変更
- ArcGIS API for Pythonのインストールと動作確認
ArcGIS API for PythonはEsriが提供するWeb GISにおいて、タスクの自動化や解析に利用できるAPIだ。
なお、OSはWindows 10 Proを使っている。
Anaconda(Miniconda)のアンインストール
自分の環境にはMinicondaがインストールされているので、以下の手順でアンインストールした。anaconda-cleanを使うとアンインストールした後に残ってしまう設定ファイルを消してくれる。
- Anaconda Powershell Promptで以下のコマンドを打ってanaconda-cleanをインストール
conda install anaconda-clean
- anaconda-cleanの実行
anaconda-clean
- コントロールパネルからMinicondaをアンインストール
公式からPythonをDL、インストール
説明不要だと思うので公式サイトのリンクだけ貼って割愛する。今回は最新の3.9.1をインストールした。
Pipenvのインストールと仮想環境作成
- Powershellで以下コマンドを打ってPipenvをインストール
pip install pipenv
- テスト用のプロジェクトディレクトリを作成し、ディレクトリを移動
- 仮想環境の作成
pipenv install
以上で仮想環境の作成が完了し、プロジェクトディレクトリ内には以下のファイルが作成される。
- Pipfile
- Pipfile.lock
前者ではプロジェクトでインストールされたパッケージが管理され、後者では依存関係やバージョンが管理されるようだ(参考)。condaでいうとpinnedファイルみたいなものかな。
仮想環境の保存先をデフォルトから変更
ここで作成された仮想環境がどこに保存されているのか知りたくなったので以下コマンドで調べた。
pipenv --venv
デフォルトだと以下のディレクトリに格納されるようだ。
- C:\Users[ユーザー名].virtualenvs
環境をいくつも作成するとストレージを圧迫するので、Dドライブに作成するようにしたい。
以下公式ドキュメントを見ると環境変数を設定すれば任意の場所に環境の保存先を変更できるようだ。
ドキュメントに従い、Windowsの環境変数を以下画像のとおり設定した。
上記の方法の場合、特定のディレクトリに作成した環境が全て保存されることになるが、プロジェクトディレクトリの配下に作成するように設定することもできるようだ。その場合、環境変数をPIPENV_VENV_IN_PROJECT
、値をtrue
に設定する。
仮想環境の再作成
以下コマンドで一度作成した環境を削除する。
pipenv --rm
pipenv install
で環境を再度作成し、pipenv --venv
で保存先を確認する。
ちゃんと環境変数で指定した保存先に作成されているようだ。
ArcGIS API for Pythonのインストールと動作確認
これでパッケージをインストールする準備も整ったので、ArcGIS API for Pythonをインストールできる。以下のコマンド一発で終了だが。
pipenv install arcgis
ArcGIS API for Pythonのドキュメントも、以前はなかったpipenvでインストールする方法が記載されていた。
インストールが終了したら環境に入って、Jupyter Notebookを起動して動作確認する。環境には以下のコマンドで入ることができる。
pipenv shell
Jupyter Notebookを起動してマップを表示する。
jupyter notebook
以下のコードでマップを表示させることができる。
from arcgis.gis import GIS my_gis = GIS() m = my_gis.map() m.basemap = "topo-vector" m
以下のGIFのような感じでマップが表示されればOKだ。
Pipenv使ってみた所感
個人的には、慣れの問題もあると思うが、condaの方が使いやすいという印象。condaはパッケージをインストールする際に、インストールされる依存パッケージが列挙されて各バージョンも確認できたのだが、それが表示されないと妙に不安になる。また、fastaiなど他にも利用したいライブラリでcondaの利用が推奨されているものがある。
ただ、Anacondaもわけわからん挙動を示したり、Anacondaのレポジトリ内にないパッケージもあったりしたので、一長一短だろうか。
しばらくはPipenvを使っていこうと思う。