我在 macOS 系统上的 Conda 环境 (
geodata_env
) 中导入 Geopandas 时遇到问题。错误消息表明缺少 libtiff.5.dylib
库:
ImportError: dlopen(/Users/lf/miniconda3/envs/geodata_env/lib/python3.12/site-packages/pyproj/_network.cpython-312-darwin.so, 0x0002): Library not loaded: @rpath/libtiff.5.dylib
经过调查,我发现
libtiff.5.dylib
仅存在于我的Conda基本目录(/Users/lf/miniconda3/lib/
)中,而不存在于geodata_env
目录(/Users/lf/miniconda3/envs/geodata_env/lib
)中。但是,geodata_env
目录包含 libtiff.6.dylib
,以及其他相关的 libtiff
文件。
有趣的是,在基目录中,
libtiff.5.dylib
是指向libtiff.6.dylib
的符号链接。这表明 libtiff.6.dylib
可能会向后兼容 libtiff.5.dylib
。
尝试使用 Conda 在
libtiff
环境中显式安装 geodata_env
版本 5,但不可用。
由于
libtiff.5.dylib
是基础环境中 libtiff.6.dylib
的符号链接,我考虑在 geodata_env
中创建类似的符号链接,这使我能够毫无错误地导入 Geopandas!
问题:
libtiff.6.dylib
中创建从libtiff.5.dylib
到geodata_env
的符号链接是否是解决此问题的可行解决方案?我有完全相同的问题。这是一个依赖问题,不是由 Geopandas 引起的。
所以基本上,去
cd /opt/anaconda3/envs/you_env/lib/python3.9/site-packages/PIL/../..
/../
那就做吧,
cp libtiff.6.dylib libtiff.5.dylib
cp libtiffxx.6.dylib libtiffxx.5.dylib
解决了我的问题。从那以后我再也没有遇到过问题。
参考:
https://github.com/conda-forge/libtiff-feedstock/issues/53
https://github.com/eclipse-sumo/sumo/issues/13147