在Python中导入osgeo库失败

我无法在我的python应用程序中导入osgeo库。 我在由以下依赖关系定义的conda环境中工作:

对于默认频道:

python=3.6.0 pandas=0.19.2 scikit-learn=0.18.1 numpy=1.12.1 requests=2.14.2 pyyaml=3.12 jinja2=2.9.6 

对于伪造渠道:

 gdal=2.2.1 

用pip安装:

 jellyfish unidecode scikit-optimize skater==1.0.2 boto3==1.4.1 schedule==0.4.3 geopy==1.11.0 fuzzywuzzy==0.15.1 python-Levenshtein==0.12.0 

我收到以下错误:

 from osgeo import ogr File "/opt/conda/lib/python3.6/site-packages/osgeo/__init__.py", line 21, in <module> _gdal = swig_import_helper() File "/opt/conda/lib/python3.6/site-packages/osgeo/__init__.py", line 17, in swig_import_helper _mod = imp.load_module('_gdal', fp, pathname, description) File "/opt/conda/lib/python3.6/imp.py", line 242, in load_module return load_dynamic(name, filename, file) File "/opt/conda/lib/python3.6/imp.py", line 342, in load_dynamic return _load(spec) ImportError: libpoppler.so.66: cannot open shared object file: No such file or directory 

我也尝试在伪造通道中添加poppler依赖,但是它不起作用。

你有什么想法解决这个问题吗? 只有在修改Conda环境的解决scheme是首选,但由于我正在使用Docker,改变我的环境中的其他任何东西都不是问题。

我的应用程序工作正常,直到今天,所以我想这个问题是关系到一系列的依赖关系的变化,但我无法弄清楚发生了什么事情。

如果conda-forge软件包有问题,那么检查软件包的构build时间是有帮助的,例如: https : //anaconda.org/conda-forge/gdal/files

如果你的软件包是刚build好的,那么依赖关系可能还在build设中,因为conda-forge的CI构build过程需要时间。

也可能是在anaconda.org上查看文件列表,你会发现另一个更新的,略有不同的gdal版本,可以与你的环境一起工作。

另外请注意,在使用多个通道(例如defaultsconda-forge )时,您应该注意以下问题: https : //conda-forge.org/docs/conda-forge_gotchas.html#using-multiple-channels