簡體   English   中英

修復“pyproj import _datadir”錯誤:找不到指定的模塊

[英]Fixing “pyproj import _datadir” error: specified module could not be found

我在 Jupyter Notebook 中做一個 Python 項目。 在我嘗試使用 Basemap 之前,一切都很好,我已將其安裝在 Anaconda 終端中,用於我的環境,使用:

conda install -c anaconda basemap

我嘗試導入:

from mpl_toolkits.basemap import Basemap as Basemap

這給出了錯誤:

ImportError                               Traceback (most recent call last)
<ipython-input-17-c19d6352b4bd> in <module>
      3 #from pyproj import _datadir
      4 #from pyproj import _datadir, datadir
----> 5 from mpl_toolkits.basemap import Basemap as Basemap

~\Anaconda3\envs\name_of_my_env\lib\site-packages\mpl_toolkits\basemap\__init__.py in <module>
     44 from matplotlib.lines import Line2D
     45 from matplotlib.transforms import Bbox
---> 46 import pyproj
     47 from mpl_toolkits.axes_grid1 import make_axes_locatable
     48 from matplotlib.image import imread

~\Anaconda3\envs\name_of_my_env\lib\site-packages\pyproj\__init__.py in <module>
     48 import warnings
     49 
---> 50 from pyproj import _datadir
     51 from pyproj._list import (  # noqa: F401
     52     get_angular_units_map,

ImportError: DLL load failed: The specified module could not be found.

認為我安裝的 pyproj 存在問題:

conda install -c conda-forge pyproj
conda install -c conda-forge/label/broken pyproj

這沒有解決任何問題,所以我安裝了:

conda install -c conda-forge geopandas

為了很好的衡量,但即使import geopandas也不起作用,給出:

ImportError                               Traceback (most recent call last)
<ipython-input-18-5f9c797680a3> in <module>
      1 import pandas as pd
----> 2 import geopandas
      3 #from pyproj import _datadir
      4 #from pyproj import _datadir, datadir
      5 from mpl_toolkits.basemap import Basemap as Basemap

~\Anaconda3\envs\name_of_my_env\lib\site-packages\geopandas\__init__.py in <module>
----> 1 from geopandas.geoseries import GeoSeries  # noqa
      2 from geopandas.geodataframe import GeoDataFrame  # noqa
      3 from geopandas.array import _points_from_xy as points_from_xy  # noqa
      4 
      5 from geopandas.io.file import read_file  # noqa

~\Anaconda3\envs\name_of_my_env\lib\site-packages\geopandas\geoseries.py in <module>
      7 from pandas.core.internals import SingleBlockManager
      8 
----> 9 from pyproj import CRS, Transformer
     10 from shapely.geometry.base import BaseGeometry
     11 from shapely.ops import transform

~\Anaconda3\envs\name_of_my_env\lib\site-packages\pyproj\__init__.py in <module>
     48 import warnings
     49 
---> 50 from pyproj import _datadir
     51 from pyproj._list import (  # noqa: F401
     52     get_angular_units_map,

ImportError: DLL load failed: The specified module could not be found.

顯然,錯誤是 pyproj import _datadir,但我不知道如何解決這個問題。

我知道這不是一個理想的解決方案,但我能設法解決這個問題的唯一方法是完全卸載Anaconda ,然后在新環境中重新安裝 Anaconda 和我的包。 看到您兩天前發布的內容,我敢肯定您現在可能已經訴諸於此。

我在重新安裝之前嘗試過的事情:

  1. conda update conda
  2. conda install anaconda=2020.02
  3. 創建了一個全新的環境,僅通過pyproj conda install -c conda-forge pyproj 在安裝過程中,我收到一條警告,我應該手動刪除“libssl-1_1-x64.dll”文件,因為 conda 顯然無法做到這一點。 手動刪除后,我仍然有無用的 ImportError

在使用geopandas 0.6.3 的環境中我沒有收到此錯誤,但我需要更新到 0.7.0 才能使用geopandas.clip() function。 在此更新之后,我開始遇到pyproj的這個問題。 同樣,這不是一個理想的答案,但我能夠通過卸載和重新安裝來“解決”我的問題。

我自己遇到了這個問題。 這是為我解決的問題。

pyproj查找_datadir模塊時,它正在查找your-env/Lib/site-packages/pyproj/_datadir.pyd

當我瀏覽到那個目錄時,我發現所有的*.pyd文件都被命名為*.cp38-win_amd64.pyd這在其他包中似乎很常見,也許有更專業的人可以說出為什么這樣做或不這樣做出現在各種 package 文件名中。

無論如何,刪除兩者之間的那一點文本. 字符似乎做到了,即重命名_datadir.cp38-win_amd64.pyd > _datadir.pyd

在編輯文件名后,我使用geopandas測試了一些操作,一切都按預期工作。

暫無
暫無

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

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