Fixing "pyproj import _datadir" error: specified module could not be found
Fixing "pyproj import _datadir" error: specified module could not be found
我正在 Jupyter Notebook 中做一个 Python 项目。一切都很好,直到我尝试使用底图,我已经在 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 和我的包。看到你两天前发的帖子,我相信你现在可能已经用过了。
我在重新安装之前尝试过的事情:
conda update conda
conda install anaconda=2020.02
- 创建了一个全新的环境,仅通过
conda install -c conda-forge pyproj
安装了 pyproj
。在安装过程中,我 got a warning that I should manually remove a "libssl-1_1-x64.dll" file because conda apparently could not do it. After manually removing, I still had the useless ImportError.
我在使用 geopandas
0.6.3 的环境中没有出现此错误,但我需要更新到 0.7.0 才能使用 geopandas.clip()
功能。此次更新后,我开始遇到 pyproj
这个问题。同样,这不是一个理想的答案,但我能够通过卸载和重新安装 "solve" 我的问题。
运行自己解决这个问题。这是为我修复它的方法。
当pyproj
寻找_datadir
模块时,它正在寻找your-env/Lib/site-packages/pyproj/_datadir.pyd
当我浏览到那个目录时,我发现所有的 *.pyd
文件都被命名为 *.cp38-win_amd64.pyd
这在其他包中似乎很常见,也许更专业的人可以说说为什么是否出现在各种包文件名中。
无论如何,删除两个 .
字符之间的那段文本似乎可以做到这一点,即重命名 _datadir.cp38-win_amd64.pyd
> _datadir.pyd
.
我在编辑文件名后使用 geopandas
测试了一些操作,一切都按预期进行。
我正在 Jupyter Notebook 中做一个 Python 项目。一切都很好,直到我尝试使用底图,我已经在 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 和我的包。看到你两天前发的帖子,我相信你现在可能已经用过了。
我在重新安装之前尝试过的事情:
conda update conda
conda install anaconda=2020.02
- 创建了一个全新的环境,仅通过
conda install -c conda-forge pyproj
安装了pyproj
。在安装过程中,我 got a warning that I should manually remove a "libssl-1_1-x64.dll" file because conda apparently could not do it. After manually removing, I still had the useless ImportError.
我在使用 geopandas
0.6.3 的环境中没有出现此错误,但我需要更新到 0.7.0 才能使用 geopandas.clip()
功能。此次更新后,我开始遇到 pyproj
这个问题。同样,这不是一个理想的答案,但我能够通过卸载和重新安装 "solve" 我的问题。
运行自己解决这个问题。这是为我修复它的方法。
当pyproj
寻找_datadir
模块时,它正在寻找your-env/Lib/site-packages/pyproj/_datadir.pyd
当我浏览到那个目录时,我发现所有的 *.pyd
文件都被命名为 *.cp38-win_amd64.pyd
这在其他包中似乎很常见,也许更专业的人可以说说为什么是否出现在各种包文件名中。
无论如何,删除两个 .
字符之间的那段文本似乎可以做到这一点,即重命名 _datadir.cp38-win_amd64.pyd
> _datadir.pyd
.
我在编辑文件名后使用 geopandas
测试了一些操作,一切都按预期进行。