linux下安装openexr python包踩坑总结
我有个朋友前段时间一直尝试装openexr的python包,参考了很多网上教程,但是最后都以失败告终。后来在我的帮助下终于装好了,在这里给大家分享一下,免得更多的人踩坑。
1.linux版本不能太低
最大的坑是linux版本不能太低,比如我这个朋友一开始使用的是ubuntu 16.04,很多教程也是用的16.04,比如当时主要参考的是这三个链接:https://blog.csdn.net/TNove/article/details/103163295
https://blog.csdn.net/qq_24306353/article/details/89111971
https://www.jianshu.com/p/aaa7c51afa30
首先对这几位博主表示感谢和致敬。按照这几位博主的指导依然没能成功 import OpenEXR,于是我就猜测是系统的问题,有可能OpenEXR包更新了,依赖的一些包也是新版本的Linux才有,所以无论怎么弄import的时候总是提示 undefined symbol: _ZTIN7Iex_2_27BaseExcE
或者其它问题。最后在虚拟机中重装了系统,装的是unbuntu 20.04,然后执行下面的步骤,就能成功 import OpenEXR 并使用啦!
2.安装步骤
安装 gcc g++编译器
sudo apt-get install gcc
sudo apt-get install g++
安装依赖(不可缺少,否则编译的时候提示缺少文件)
sudo apt-get install libopenexr-dev zlib1g-dev
创建一个conda虚拟环境
conda-env create -n openexr_env python=3.6
source activate openexr_env
(这里python3以上的版本都应该可以)
安装 OpenEXR for python
pip3 install OpenEXR
或者是pip install OpenEXR
,也可以用小写openexr
,一般此时会提示升级pip,请按照提示升级pip。
安装成功之后,就能使用OpenEXR啦:
3.不需要执行conda install -c conda-forge openexr
看了那么多教程,这里有一个误区就是,先使用conda install -c conda-forge openexr
命令,再使用pip3 install OpenEXR
命令。其实这两者是没有关系的,conda install -c conda-forge openexr
安装的只是OpenEXR这个工程( https://anaconda.org/conda-forge/openexr),它的介绍在https://github.com/AcademySoftwareFoundation/openexr,打开可以看到这么一段话:
大意是说,该工程并不是提供给python的OpenEXR包,咱们应该装openexrpython这个工程,其地址是https://github.com/jamesbowman/openexrpython,翻到下面的readme.md,可以看到:
也就是说,要装openexr的最新python包,只需要装完依赖后执行 pip install openexr
就可以啦。
来源:oschina
链接:https://my.oschina.net/u/4395251/blog/4296086