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
建立虛拟環境(請看下一步)之後在虛拟環境中安裝 ilmbase :
conda install -c conda-forge ilmbase
(如果ilmbase使用
sudo apt-get install libilmbase-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。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5YTM0QDM1cTM4ITNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
安裝成功之後,就能使用OpenEXR啦:
3.不需要執行 conda install -c conda-forge openexr
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
就可以啦。