結論

    • jupyterが参照しているパスには要注意

 

    Python 3.8 でGDAL,OpenCV両方インストール可能

前提

    • Ubuntu 20.04.3LTS

 

    • Anaconda3

 

    リモートサーバーにアクセスするため、PuTYYのコマンドラインを使用

起きた事象

conda create -n '環境名' anaconda

でAnaconda上に仮想環境を作りそこにGDALとOpenCVをインストールするため、下記コマンドを入力。

conda install -c conda-forge opencv
conda install -c conda-forge gdal

するとconflictエラーで二つのライブラリがインストールできない。

やったこと

pythonのバージョンを確認

下記で確認できます。

conda info

確認したところpython3.9でした。
下記サイトを見ているとpython3.9版のGDALは用意されているのでインストールできるはず。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal

gdalからinstall

仮想環境をpython3.8で作り直しgdalからinstallしたところ問題なくインストール完了できました。

(時系列は前後しますが、pythonの他のバージョンでもGDAL,OpneCVのインストールを試みましたがconflictしなかったのは3.8のみでした。)

下記でjupyterをブラウザで開いて動作確認を行いました。

(仮想環境内で) jupyter notebook

動作確認はnotebook上で

from osgeo import gdal

で可能です。

何もエラーが出なければ問題なくインストールされています。
しかし No module… のエラーを確認。。。

念のため下記でGDALが入っているかを別方法で確認しました。

conda list gdal

どうやら入っていなさそう。
ではさっきinstallできたのは何なのか。。。

問題はjupyterが参照するパス!

下記サイトを参考にjupyterのパスを確認してみました。
https://qiita.com/kashi1mochi/items/d640098104b643abd466#%E6%A6%82%E8%A6%81

!which jupyter

jupyter パスは/home/ubuntu/jupyterとなっていて、そもそも仮想環境内でjupyterが使えていないことに気づきました。

たしかに仮想環境を作った後にはjupyterを入れていない、、、

コマンドラインでgdalの場所を参照してみるとjupyterの参照先と全然違うところに入っていました。そら動かんわ。

gdal list
# packages in environment at /home/ubuntu/.conda/envs/(環境名):
#
# Name                    Version                   Build  Channel
gdal                      3.3.0            py38h507a4fd_1    conda-forge
libgdal                   3.3.0                h679344c_1    conda-forge

そこでjupyterを仮想環境にインストールしところjupyter notebook上でGDALをimportできました。

正しいjupyterの位置はここでした。

/home/ubuntu/.conda/envs/(環境名)/bin/jupyter

参考

Anacondaで仮想環境を作るときにpythonのバージョンを指定する方法(v3.8の場合)

conda create -n '環境名' python=3.8 anaconda
广告
将在 10 秒后关闭
bannerAds