簡體   English   中英

安裝 geopandas 時出錯:“必須在 Anaconda 中指定 GDAL API 版本”

[英]Error installing geopandas:" A GDAL API version must be specified " in Anaconda

安裝 geopandas 時出現此錯誤。 我在 web 上尋找它的解決方案,但他們都沒有真正解釋發生了什么以及如何解決它。這是完整的錯誤:

    Collecting geopandas
  Using cached https://files.pythonhosted.org/packages/24/11/d77c157c16909bd77557d00798b05a5b6615ed60acb5900fbe6a65d35e93/geopandas-0.4.0-py2.py3-none-any.whl
Requirement already satisfied: shapely in c:\users\alvaro\anaconda3\envs\tfdeeplearning\lib\site-packages (from geopandas) (1.6.4.post2)
Requirement already satisfied: pandas in c:\users\alvaro\anaconda3\envs\tfdeeplearning\lib\site-packages (from geopandas) (0.20.3)
Collecting fiona (from geopandas)
  Using cached https://files.pythonhosted.org/packages/3a/16/84960540e9fce61d767fd2f0f1d95f4c63e99ab5d8fddc308e8b51b059b8/Fiona-1.8.4.tar.gz
    Complete output from command python setup.py egg_info:
    A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Alvaro\AppData\Local\Temp\pip-install-oxgkjg8l\fiona\
pip install wheel
pip install pipwin

pipwin install numpy
pipwin install pandas
pipwin install shapely
pipwin install gdal
pipwin install fiona
pipwin install pyproj
pipwin install six
pipwin install rtree
pipwin install geopandas

以下是源鏈接: http ://geopandas.org/install.html#installation https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels https://www.lfd.uci .edu/~gohlke/pythonlibs/#numpy

如果還是有問題,可以考慮卸載上面的(pip卸載)重新安裝。

地理空間數據抽象庫 (GDAL) 是為矢量地理空間數據格式設計的庫。 這是安裝 Fiona 的先決條件,Fiona 是用於 OGR 的 Python API(它實際上並不代表任何東西),而這反過來又是 Geopandas 的先決條件。 在類 UNIX 系統上, gdal-config腳本告訴 Fiona 關於您的特定gdal安裝的信息。

您的gdal-config似乎不在 PATH 上的常見位置之一,因此 Fiona 無法找到它。

如果您使用的是 Anaconda,最好使用conda remove gdal ,然后執行新的conda install geopandas

作為一般規則,如果您使用的是 Conda,除非您絕對確定 conda 不支持它,否則您不應該使用 pip 在其中安裝某些東西。 (通過指定正確的通道 - -c參數可以在 conda 上找到許多包。)特別是在 geopandas 的情況下,維護人員建議使用 conda 而不是 pip,因為 pip 要求您正確安裝依賴項。

我通過運行以下命令解決了這個問題:

pip install pipwin
pipwin install gdal
pipwin install fiona
pip install geopandas

在 Windows 上成功運行。

我自己在安裝 geopandas 時遇到了很多問題,主要是在下載 fiona 和 gdal 時出現錯誤。 我做了上面的每一步並做了一個 conda install geopandas 但失敗了。 唯一對我有用的是分別安裝 fiona 和 gdal 輪。

轉到 Christoph 的鏈接:gohlke: https ://www.lfd.uci.edu/~gohlke/pythonlibs/#fiona

  • 您可以搜索 fiona 和 gdal 輪文件。 確保根據您的 python 版本選擇文件,如果它是 3.7,那么會有 cp37。
  • 下載文件
  • 轉到命令提示符,放入 cd 然后 pip install ,安裝 GDAL 輪文件,然后是 fiona,然后只需執行 pip install geopandas。

這個解決方案對我有用。

要安裝 gdal,我按照以下步驟操作:

  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/下載了滿足我電腦的版本(64 位)。 該文件是GDAL-3.1.4-cp37-cp37m-win_amd64.whl

  2. 將文件放在桌面上的文件夾中。

  3. 從cmd,我移到該目錄並執行python -m pip install GDAL-3.1.4-cp37-cp37m-win_amd64.whl

  4. 然后以相同的方式安裝 fiona: python -m pip install Fiona-1.8.18-cp37-cp37m-win_amd64.whl

  5. 為了勻稱,我執行conda install -c conda-forge shapely

  6. 之后,我可以像往常一樣安裝keplergl: pip install keplergl

  7. 安裝笛卡爾: conda conda install -c conda-forge descartes (或python -m pip install descartes )。

通過這種方式,我不必玩弄“環境變量”,因為這可能會影響其他程序干杯..

對我來說,唯一的解決方案是從這里安裝准備好的二進制文件

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal

然后本地安裝

pip install GDAL-3.1.4-cp38-cp38-win_amd64.whl

我可以安裝 geopandas 的一種方法是通過 Anaconda Navigator。 進入環境並安裝包'geopandas'。 之后我可以在 spyder 中導入 geopandas 包

安裝地理熊貓

Geopandas 具有非常復雜的多語言依賴關系,其中一些需要跨包使用一致的編譯器版本構建。 因此, geopandas 文檔建議在僅使用 conda-forge 的新環境中使用 conda 進行安裝 以下是一些需要牢記的一般最佳實踐:

  1. conda是推薦的安裝方法。 可以從 pip 或 source 安裝 geopandas,但這將是一個顛簸的過程,不建議這樣做。 如果您是第一次安裝 conda,我建議您從miniconda而不是anaconda開始,以保​​持您的基礎環境精簡。
  2. 使用 conda 時,不應混合和匹配 conda 通道
  3. 安裝 geopandas 時,請嘗試創建一個全新的環境,而不是安裝到您的基礎環境中。 如果您安裝了anaconda ,它會附帶大量來自安裝在基本環境中的“默認”頻道的軟件包。 我建議刪除 anaconda 並安裝 miniconda,然后安裝到新環境中。
  4. 嘗試使用您計划一次性使用的所有內容創建一個新環境,而不是反復修改環境。 換句話說,如果您想將 geopandas 與 scikit_learn、folium 和 rasterio 一起使用,請使用單個conda create命令將它們一起安裝
  5. 作為最后的手段,刪除您的 conda 安裝並重新安裝 miniconda 絕望的時代需要絕望的措施,這通常可以解決粗糙的安裝噩夢。

要創建一個全新的 conda 環境,您可以在其中同時安裝所有必要的依賴項,使用conda-forge通道:

conda create -n my-geopandas-env -c conda-forge geopandas [all other packages you need]

例如,我可能會設置一個環境,其中包含類似...

conda create -n my-geopandas-env -c conda-forge python=3.9 \
   ipython ipykernel geopandas scipy seaborn fiona matplotlib cartopy

像這樣將您的安裝捆綁到一個環境創建步驟中可以減少包不同步的機會。 為了加快這個過程,您可以首先將mamba (一個更快的 conda 替代品)安裝到您的基礎環境中,然后使用 mamba 而不是 conda 運行上述命令。

通常,最好避免在基本環境中安裝任何東西(像 mamba 這樣的跨環境系統實用程序是少數例外)。 如果您已經有一個復雜的基礎環境(也許您從 anaconda 而不是 miniconda 開始)這可能是時候刪除您的整個 conda 安裝並從頭開始(我知道這很可怕......對不起!但它會為您省去心痛在將來)。 曼巴非常適合加快這個過程。

將編輯器連接到 conda 環境

安裝所需的所有軟件包后,使用conda activate my-geopandas-env激活您的環境。 有關更多信息,請參閱管理環境的 conda 指南

Jupyter/ipython

包括 jupyter 在內的一些編輯器/IDE 需要額外的軟件包——jupyter 需要安裝 ipython 和 ipykernel 才能在筆記本或編輯器中加載環境——這就是我在上面的列表中包含ipykernel的原因。 有關更多信息,請參閱ipykernel 文檔

其他IDE

要將此環境鏈接到 VSCODE、蜘蛛等 IDE,請使用 conda conda run -n my-geopandas-env which python找到此 Python 版本的位置,然后將您的編輯器指向此 Python 可執行文件。 檢查您的特定編輯器的文檔以獲取有關如何設置與您的編輯器一起使用的 conda 環境的更有針對性的信息:

我沒有安裝 conda,然后只使用 pip 我按照以下步驟操作:

直接下載GDAL和Fiona車輪:

  • GDAL: https ://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal
  • 菲奧娜: https ://www.lfd.uci.edu/~gohlke/pythonlibs/#fiona

然后:

  1. 點安裝 <gdal.whl>
  2. 點安裝 <fiona.whl>

就我而言,我確實 pip install GDAL-3.4.1-cp38-cp38-win_amd64.whl 和 Fiona-1.8.21-cp38-cp38-win_amd64.whl。 其中 cp38 代表 python 3.8。

之后,您也可以使用 pip 安裝 geopandas。

  1. 點安裝地理熊貓

我會加

!pip install descartes

到@JDOaktown 列表。

我從pip install geopandas開始並收到錯誤,但后來嘗試使用conda install --channel conda-forge geopandas並且錯誤消失了。

在 RHEL 7.8 中成功安裝。 它會自動下載所需的軟件包。 這可能會有所幫助

安裝收集的包:certifi、pyproj、shapely、attrs、click、click-plugins、munch、cligj、fiona、geopandas 成功安裝 attrs-20.3.0 certifi-2020.11.8 click-7.1.2 click-plugins-1.1.1 cligj -0.7.0 fiona-1.8.17 geopandas-0.8.1 munch-2.5.0 pyproj-3.0.0.post1 shapely-1.7.1

如果你想在 Windows 虛擬環境中安裝 GDAL、Geopandas、Shapely、Fiona 等,請為所有這些下載 .whl 文件,並首先使用 pip install gdal-.whl 安裝 GDAL 按照此命令編輯 venv\ 中的 activate.bat 文件Scripts 文件夾並添加 GDAL_CONFIG = \venv\Lib\site-packages\osgeo 然后您可以使用 pip install 安裝 rest

我從 Conda 環境中的干凈環境gdal_test開始,但錯誤地使用舊的activate gdal_test而不是conda activate gdal_test 這使得 Conda Environment 解析需要很長時間,這就是為什么我首先決定使用其他方法。

外賣:讓 conda 處理它,使用適當的新環境。

我遇到這個問題不是使用 anaconda/windows,而是使用python:3.6 Docker 圖像 谷歌搜索總是讓我想到這個問題,所以我想我會分享我是如何解決我的問題的,以防其他人也出現在這里。

基於這里,在運行pip install geopandaspip install requirements.txt之前,需要先在Dockerfile安裝系統相關包:

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential \
  libatlas-base-dev \
  libgdal-dev \
  gfortran

以下適用於 macOS:

brew 安裝 gdal --HEAD

通過運行gdal-config --version驗證安裝

之后 pip 安裝正常,沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM