簡體   English   中英

導入 Geopandas 時導入錯誤

[英]Import Error when Importing Geopandas

嘗試將 geopandas 導入我的 jupyter 筆記本時,出現ImportError: DLL load failed 我已經從我的終端運行pip install geopandas並得到“要求已經滿足”。 我也試過pip install --upgrade pip setuptools也沒有用。 這是嘗試導入 geopandas 時的完整錯誤報告:

ImportError                               Traceback (most recent call last)
<ipython-input-2-fc7d1d298f0c> in <module>()
----> 1 import geopandas

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\geopandas\__init__.py in <module>()
      2 from geopandas.geodataframe import GeoDataFrame
      3 
----> 4 from geopandas.io.file import read_file
      5 from geopandas.io.sql import read_postgis
      6 from geopandas.tools import sjoin

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\geopandas\io\file.py in <module>()
      1 import os
      2 
----> 3 import fiona
      4 import numpy as np
      5 

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\fiona\__init__.py in <module>()
     67 from six import string_types
     68 
---> 69 from fiona.collection import Collection, BytesCollection, vsi_path
     70 from fiona._drivers import driver_count, GDALEnv
     71 from fiona.drvsupport import supported_drivers

~\AppData\Local\Continuum\Anaconda3\lib\site-packages\fiona\collection.py in <module>()
      7 
      8 from fiona import compat
----> 9 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
     10 from fiona.ogrext import Session, WritingSession
     11 from fiona.ogrext import (

ImportError: DLL load failed: The operating system cannot run %1.

感謝所有幫助。

首先將 conda 通道添加到您的設置中(最后一個通道具有最高優先級)。

conda config --add channels conda-forge
conda config --add channels defaults

然后嘗試使用 conda 創建新環境。

conda create -n test_python python=3.7 geopandas

就我而言,這是 gdal 的問題,尤其是 conda-forge 上的最新版本(前一個工作正常)。 如果在測試環境中安裝 geopandas 失敗,您可以嘗試使用 conda 安裝此版本 (win64) 的gdal

conda install "downloaded file path"

波音教授在他的博文中很好地解釋了錯誤的原因:

pip 安裝 geopandas 似乎在 Linux 和 Mac 上運行良好。 但是,它的幾個依賴項具有 C 擴展,這會導致在 Windows 上使用 pip 編譯失敗...... Windows 上的最佳選擇是盡可能安裝 Python 輪子,因為它們包含預編譯的擴展。 Anaconda 附帶的 conda 包管理器對其存儲庫中可用的包執行此操作。 或者,加州大學歐文分校熒光動力學實驗室的 Christoph Gohlke 為 Windows 維護了一個大型 Python 輪子庫。

解決方案:您必須手動卸載 geopandas 及其依賴項並手動安裝軟件包,在我的情況下,這就是解決此問題的方法。 要做到這一點:

  1. 首先你必須卸載任何現有的 OSGeo4W、GDAL、Fiona、pyproj、rtree 或 shapely conda uninstall <package name> ,方法是在命令提示符下寫conda uninstall <package name> (例如: conda uninstall fiona )。

  2. Gohlke下載 GDAL、Fiona、pyproj、rtree 和shapely 的輪子 確保選擇與您的架構(64 位)和 Python 版本(2.7 或 3.6)相匹配的輪文件。

  3. pip install 你下載的wheel文件,按照步驟2中的命令,命令如下: pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl

  4. 將新的 GDAL 路徑(類似於 C:\\Anaconda\\Lib\\site-packages\\osgeo,您已在計算機中找到 osgeo 的位置)添加到 windows PATH 環境變量中。 要了解添加新 PATH 的過程,請單擊此處

我最近在我的工作機器上安裝 geopandas 時遇到了這個問題(我沒有將目錄添加到 PATH 環境的管理員權限)。

我意識到 pip 安裝過程為 osgeo 創建了 2 個文件夾。 我只是將包含所有可執行文件 (*.exe) 的文件復制到帶有 python 腳本 (*.py) 的文件夾中,並且導入工作正常。 (我猜 python 腳本假設其他文件在同一目錄中)

您可能需要在移動文件后重新啟動 jupyter 以注冊更改。

例如:將Users\\USERNAME\\AppData\\Roaming\\Python\\Lib\\site-packages\\osgeoUsers\\USERNAME\\AppData\\Roaming\\Python\\Python27\\site-packages\\osgeo

希望能幫助到你。

我們遇到了同樣的問題,使用 Python 3.7.1 和 geopandas 0.6.1 為我們解決了這個問題:

conda create -n test_python python=3.7.1 geopandas=0.6.1

為了在 Jupyter 中切換到正確的環境,我們安裝了 nb_conda(請參閱如何在 Jupyter Notebook 中選擇您的 conda 環境

暫無
暫無

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

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