Я только что установил gdal в мою корневую среду Python3, используя conda:
conda install -c conda-forge gdal
Установка прошла нормально с обычными обновлениями некоторых зависимостей. Теперь, возвращаясь к некоторым из моих скриптов, перестали работать и netCDF4, и mpl_toolkits.basemap. Вот ошибки, которые я получаю:
from netCDF4 import Dataset
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-7-09694a7f0e01> in <module>()
----> 1 from netCDF4 import Dataset
2 import numpy as np
3 import matplotlib.pyplot as plt
4 from scipy.interpolate import griddata
5 from mpl_toolkits.basemap import Basemap
/anaconda3/lib/python3.6/site-packages/netCDF4/__init__.py in <module>()
1 # init for netCDF4. package
2 # Docstring comes from extension module _netCDF4.
----> 3 from ._netCDF4 import *
4 # Need explicit imports for names beginning with underscores
5 from ._netCDF4 import __doc__, __pdoc__
ImportError: dlopen(/anaconda3/lib/python3.6/site-packages/netCDF4/_netCDF4.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libhdf5.101.dylib
Referenced from: /anaconda3/lib/python3.6/site-packages/netCDF4/_netCDF4.cpython-36m-darwin.so
Reason: image not found
from mpl_toolkits.basemap import Basemap
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-8-5fb601138328> in <module>()
3 import matplotlib.pyplot as plt
4 from scipy.interpolate import griddata
----> 5 from mpl_toolkits.basemap import Basemap
6 import numpy.ma as ma
7 import glob
/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py in <module>()
35 import numpy as np
36 import numpy.ma as ma
---> 37 import _geoslib
38 import functools
39
ImportError: dlopen(/anaconda3/lib/python3.6/site-packages/_geoslib.so, 2): Library not loaded: @rpath/libgeos-3.5.0.dylib
Referenced from: /anaconda3/lib/python3.6/site-packages/_geoslib.so
Reason: image not found
Я понятия не имею, что означают эти ошибки, поскольку эти пути существуют. Что больше всего сбивает с толку, так это то, что модули netCDF4 и mpl_toolkits не изменились (то есть не были обновлены / понижены) при установке gdal, так почему же теперь они дают сбой?
Я нахожусь в конце своей привязи с такими проблемами. К счастью, я сделал копию своего корневого каталога Python, прежде чем пытаться выполнить эту установку, чтобы теперь я мог вернуться к нему (я уже бывал здесь много раз).
Я знаю о работе в отдельных средах conda, но серьезно ли я должен устанавливать новую среду каждый раз, когда хочу использовать новый модуль Python? Это не только занимает много места на жестком диске, но наиболее неудобно означает, что добавить новые функциональные возможности к старым кодам невозможно (я хочу использовать GDAL для построения некоторых геотифов с помощью Basemap, что теперь не работает!).
Я не могу представить опытных пользователей Python, борющихся с этими проблемами - так что я делаю не так?