天天看點

linux下安裝openexr python包踩坑總結

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。

linux下安裝openexr python包踩坑總結

安裝成功之後,就能使用OpenEXR啦:

linux下安裝openexr python包踩坑總結

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,打開可以看到這麼一段話:

linux下安裝openexr python包踩坑總結

大意是說,該工程并不是提供給python的OpenEXR包,咱們應該裝openexrpython這個工程,其位址是https://github.com/jamesbowman/openexrpython,翻到下面的readme.md,可以看到:

linux下安裝openexr python包踩坑總結

也就是說,要裝openexr的最新python包,隻需要裝完依賴後執行

pip install openexr

就可以啦。