web-dev-qa-db-ja.com

PyCharmのベースマップインポートエラー— KeyError: 'PROJ_LIB'

Basemapパッケージを使用してPyCharmによって地図をプロットしようとしましたが、

from mpl_toolkits.basemap import Basemap`

そして、トレースバックは次のとおりです。

Traceback (most recent call last):
File "/Users/yupeipei/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-0a24a3a77efd>", line 7, in <module>
    from mpl_toolkits.basemap import Basemap
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/Users/yupeipei/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py", line 146, in <module>
    pyproj_datadir = os.environ['PROJ_LIB']
  File "/Users/yupeipei/anaconda3/lib/python3.6/os.py", line 669, in __ getitem__
    raise KeyError(key) from None
KeyError: 'PROJ_LIB'

同じスクリプトがJupyterまたはSpyderで正しく実行されているため、PyCharmのこのエラーと混同しています。 PyCharmの環境は../anaconda3/lib/python3.6です。ここはanacondaと同じです。

以前にこのエラーに遭遇した人はいますか?

誰でもこのエラーを解決するのを助けることができますか?

16
Yupei

Mewahlのコメントに従って、.bashrcに追加しました(bashを使用しています):

export PROJ_LIB =/path/to/your/instalation/of/anaconda/share/proj /

そして今ベースマップ(および他の作品)。

15
user1770719

Anaconda + Python 3.71(および他のPython 3バージョンおよびWindows 7/8を搭載したWindows 10の場合、Proj4の「epsg」ファイルが成功する場所をBasemapに伝えることができます。 。私には「環境」など何もありません。それは、把握するのが大変すぎるためです。したがって、anaconda\share\projエリアはありませんでした(私が持っていない理由がわかる限り)。

しかし、Basemapが望んでいるのは「epsg」ファイルで、WindowsエクスプローラーでAnacondaディレクトリを検索します。見つからない場合は、「Anaconda Prompt」を開いて入力してProj4をインストールします。

conda install -c conda-forge proj4

それが見つかった場合、次のようになります。

C:\ Utilities\Python\Anaconda\Library\Share(私の場所であり、パッケージ自体を置く\ pkgs \の場所です-そして、必要に応じてそれらも動作します、最初はそれらを使用しましたが、ライブラリの方が更新をうまく処理できるはずです(たぶん)。

Basemapをインポートする前に次のコードを使用すると動作します。環境変数PROJ_LIBをepsgのある場所に設定すると、Basemapは問題なく動作します。

import os
os.environ["PROJ_LIB"] = "C:\\Utilities\\Python\\Anaconda\\Library\\share"; #fixr
from mpl_toolkits.basemap import Basemap

ナイスボーナスとして、開始するためにAnacondaがBasemapインストールに含まれていないBasemapの高解像度データを取得するには、「Anaconda Prompt」と入力します。

conda install -c conda-forge basemap-data-hires
11
user2403531

Proj libのパスを新しいバージョンのように設定する必要があります。このパスは置き換えられました。 matplot_toolkitsをインポートする前に、2行以下のコードを記述します

  ### For Window's Users
      import os
      os.environ['PROJ_LIB'] = r'C:\Users\XXXXX\Anaconda3\pkgs\proj4-5.2.0- 
      ha925a31_1\Library\share'

Proj_libのパスを見つけるには、epsgを検索し、このepsgファイルの場所をコピーしてproj_libに入れます。あなたの問題は解決されます。

  ### For Linux's Users
  import os
  os.environ['PROJ_LIB'] = r'/home/XXXXXX/anaconda3/pkgs/proj4-5.2.0- 
  he6710b0_1/share/proj'
4
sameer_nubia

答えはGithubからのもので、私にとってはうまくいきました。 https://github.com/conda-forge/basemap-feedstock/issues/

import os
import conda

conda_file_dir = conda.__file__
conda_dir = conda_file_dir.split('lib')[0]
proj_lib = os.path.join(os.path.join(conda_dir, 'share'), 'proj')
os.environ["PROJ_LIB"] = proj_lib

from mpl_toolkits.basemap import Basemap
1
Yusuf Baktir

これは一般的な問題のようです。それに関するいくつかのバグレポートがあります

私は自分でこのエラーに遭遇しました、そして私にとって解決策はベースマップ1.2をアンインストールし、それから私がまだ横たわっていた古いホイールファイルからベースマップ1.1をインストールしてからベースマップ1.2を再度インストールすることでした。正直なところ、なぜそれが機能したのか分かりません。

また、上記の問題から、人々が彼らのために働いていると報告した他のあらゆる種類の解決策があります。うまくいけば、そのうちの1つがここにも収まることを願っています。

Pycharmで修正するProj4の簡単な解決策は、goto設定->プロジェクトインタープリター-> +->検索フィールドにproj4を記述してインストールすることです。

私は同じ問題に直面しました。 anacondaをインストールし、conda install -c anaconda basemapをインストールしました。

「Spyder」という名前のIDEに組み込まれたAnacondaを使用しました。 Spyderはpycharmよりも優れています。スパイダーの唯一の問題は、インテリセンスの不足です。

パスを設定してProj4の問題を解決しました。

.jsonのより大きなファイルデータセットの読み込み時にカーネルが再起動する他の問題。

Notepad ++と010エディターを使用してファイルを小さなチャンクに再保存し、最後にすべての出力をマージしました。