PROJ_LIB Spyder 导入底图时出错
PROJ_LIB error in Spyder with importing basemap
我是 python 的新手,我正在尝试将 basemap
导入 Spyder 3.6。我在 Anadonda Prompt 和 Spyder import basemap
中使用了 conda install basemap
,但出现错误
File "<ipython-input-1-d9467465a3b6>", line 1, in <module>
from mpl_toolkits.basemap import Basemap
File "D:\Anaconda_Python\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 155, in <module>
pyproj_datadir = os.environ['PROJ_LIB']
File "D:\Anaconda_Python\lib\os.py", line 678, in __getitem__
raise KeyError(key) from None
KeyError: 'PROJ_LIB'
我看过类似的问题,但对我没有用:
- How can I avoid PROJ_LIB error in importing basemap?
但是错误只是更改为
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Anaconda_Python\share\proj\epsg'
- https://github.com/conda-forge/basemap-feedstock/issues/30
这似乎是一个常见问题。问题在于 Basemap 没有正确定位 Proj4 的 "epsg" 文件所在的位置。
这可以通过首先找到文件 'epsg' 所在的位置然后使用一些代码添加路径本身来轻松解决。
应该是这样的地方(这是我的所在位置,根据环境名称和下载Anaconda的位置不同而不同)
C:\Users\XXX\Anaconda3\envs\env\Library\share
查看您的错误消息,我相信您的错误消息应该位于 "D:\Anaconda_Python\share"
中的某处
然后在导入底图之前插入以下代码,它应该可以工作。
import os
os.environ["PROJ_LIB"] = r'C:\Users\XXX\Anaconda3\envs\env\Library\share (location of epsg)'
from mpl_toolkits.basemap import Basemap
您也可以将 epsg 文件复制到它搜索它的目录,在您的情况下 D:\Anaconda_Python\share\proj\
我遇到了同样的错误(Windows 10,Anaconda)。所以我试图找到出现在 'C:\Users\Yury\anaconda3\Library\share' 的 "epsg" 文件并通过添加这些行我终于让它工作了
import os
os.environ["PROJ_LIB"] = 'C:\Users\Yury\anaconda3\Library\share'
或者同样可以做到
import os
import conda
conda_file_dir = conda.__file__
conda_dir = conda_file_dir.split('lib')[0]
proj_lib = os.path.join(os.path.join(conda_dir, 'Library'), 'share')
os.environ["PROJ_LIB"] = proj_lib
感谢您提供这段代码
我是 python 的新手,我正在尝试将 basemap
导入 Spyder 3.6。我在 Anadonda Prompt 和 Spyder import basemap
中使用了 conda install basemap
,但出现错误
File "<ipython-input-1-d9467465a3b6>", line 1, in <module>
from mpl_toolkits.basemap import Basemap
File "D:\Anaconda_Python\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 155, in <module>
pyproj_datadir = os.environ['PROJ_LIB']
File "D:\Anaconda_Python\lib\os.py", line 678, in __getitem__
raise KeyError(key) from None
KeyError: 'PROJ_LIB'
我看过类似的问题,但对我没有用:
- How can I avoid PROJ_LIB error in importing basemap?
但是错误只是更改为
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Anaconda_Python\share\proj\epsg'
- https://github.com/conda-forge/basemap-feedstock/issues/30
这似乎是一个常见问题。问题在于 Basemap 没有正确定位 Proj4 的 "epsg" 文件所在的位置。 这可以通过首先找到文件 'epsg' 所在的位置然后使用一些代码添加路径本身来轻松解决。
应该是这样的地方(这是我的所在位置,根据环境名称和下载Anaconda的位置不同而不同)
C:\Users\XXX\Anaconda3\envs\env\Library\share
查看您的错误消息,我相信您的错误消息应该位于 "D:\Anaconda_Python\share"
中的某处然后在导入底图之前插入以下代码,它应该可以工作。
import os
os.environ["PROJ_LIB"] = r'C:\Users\XXX\Anaconda3\envs\env\Library\share (location of epsg)'
from mpl_toolkits.basemap import Basemap
您也可以将 epsg 文件复制到它搜索它的目录,在您的情况下 D:\Anaconda_Python\share\proj\
我遇到了同样的错误(Windows 10,Anaconda)。所以我试图找到出现在 'C:\Users\Yury\anaconda3\Library\share' 的 "epsg" 文件并通过添加这些行我终于让它工作了
import os
os.environ["PROJ_LIB"] = 'C:\Users\Yury\anaconda3\Library\share'
或者同样可以做到
import os
import conda
conda_file_dir = conda.__file__
conda_dir = conda_file_dir.split('lib')[0]
proj_lib = os.path.join(os.path.join(conda_dir, 'Library'), 'share')
os.environ["PROJ_LIB"] = proj_lib
感谢您提供这段代码