1

我在我的 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

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

你有什么想法来解决这个问题吗?仅基于修改 conda 环境的解决方案是首选,但由于我正在使用 Docker,因此在我的环境中更改任何其他内容都不是问题。

我的应用程序直到今天都运行良好,所以我认为问题与依赖链中的一些变化有关,但我无法弄清楚发生了什么。

4

1 回答 1

0

如果您对 conda-forge 包有疑问,检查包的构建时间会很有帮助,例如: https ://anaconda.org/conda-forge/gdal/files

如果您的包刚刚构建,则可能是依赖项仍在构建中,因为 CI 构建过程conda-forge需要时间。

也可能是查看 anaconda.org 上的文件列表,您会发现另一个更新的、稍微不同的 gdal 版本,它可以与您的环境一起使用。

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

于 2017-11-28T13:26:03.600 回答