PYTHON使用BASEMAP,出現 KeyError:'PROJ_LIB'和OSError: Unable to open boundary dataset file.

  1. 錯誤表現:KeyError: PROJ_LIB
  2. 錯誤原因:因python升級到最新版本3.7時,Anaconda沒有自動配置環境變量PROJ_LIB,而basemap的__init__.py文件中epsgf的設置代碼如下,因此會報錯
    在這裏插入圖片描述
  3. 解決辦法:
    1)找到“epsg”的相應位置,複製文件所在路徑(例如我的電腦中“epsg”的位置爲C:\ProgramData\Anaconda3\Library\share)
    2)設置系統環境變量PROJ_LIB
    在這裏插入圖片描述
    2)問題解決

======================================我是分界線======================================

哈哈,今天是2020年的一月一日,我用家裏電腦導入basemap又出現了問題,問題是OSError: Unable to open boundary dataset file,找不到邊界文件。

第一張圖中顯示的.dat的文件位置並不是我設置的,所以我就追到源碼裏看了一下,路徑是由下面這個代碼拼成的,這個basemap_datadir是怎麼來的呢?

找到basemap_datadir的初始化位置,如下圖

原來是os.environ中沒有BASEMAPDATA他就會用sys.prefix加上後面的那幾個字符串拼成數據目錄,sys.prefix是你py程序的路徑,我的程序在D盤,而我anaconda中的python庫在C盤呀,當然找不到了,那就在os.environ中添加對應的變量吧。os.environ就是環境變量的系統變量了,跟上面PROJ_LIB方法一樣,先找到路徑再添加。

epsg就是PROJ_LIB問題所需要的,而basemap就是這個問題需要的路徑,所以我這裏複製路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章