當前位置: 首頁>>技術教程>>正文


在Ubuntu virtualenv上進行pip安裝 Pillow 時出錯

, , ,

問題描述

我有一個ec2實例,並且最初在virtualenv中安裝了Pillow 2.0。我以某種方式嘗試將其升級到Pillow 2.5時,失敗並顯示以下消息。即使在完全重新安裝之前完全卸下Pillow之後,該錯誤也是相同的。 (所以現在我的virtualenv中根本沒有 Pillow )

$ pip install Pillow
....
....
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments -fPIC -DHAVE_LIBJPEG -DHAVE_LIBZ -DHAVE_LIBTIFF -I/usr/include/freetype2 -I/home/andycheng/realprice/env/build/pillow/libImaging -I/home/andycheng/realprice/env/include -I/usr/include/tcl8.5 -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c libImaging/RawDecode.c -o build/temp.linux-x86_64-2.7/libImaging/RawDecode.o

gcc: error: unrecognized option ‘-Qunused-arguments’

gcc: error: unrecognized option ‘-Qunused-arguments’

....
....
gcc: error: build/temp.linux-x86_64-2.7/libImaging/XbmEncode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/ZipDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/ZipEncode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/TiffDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Incremental.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Jpeg2KDecode.o: No such file or directory

gcc: error: build/temp.linux-x86_64-2.7/libImaging/Jpeg2KEncode.o: No such file or directory

gcc: error: unrecognized option ‘-Qunused-arguments’

gcc: error: unrecognized option ‘-Qunused-arguments’

error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /home/andycheng/realprice/env/bin/python -c "import setuptools, tokenize;__file__='/home/andycheng/realprice/env/build/Pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-U8jA_X-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/andycheng/realprice/env/include/site/python2.7 failed with error code 1 in /home/andycheng/realprice/env/build/Pillow

我不知道這是否相關,但是日誌中有很多gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: No such file or directory錯誤。而且還有很多gcc: error: unrecognized option ‘-Qunused-arguments’

我可以通過root訪問權限安裝Pillow 2.5,但是它將不會安裝在我的virtualenv中。

sudo pip install Pillow  # this works but wrong directory
pip install -I Pillow==2.0  # gives the same error and would not install

版本號

畫中畫:1.5.4

Linux:Ubuntu 12.04.4 LTS(所有軟件包已升級)

謝謝

最佳思路

我的情況略有不同,因為我的ubuntu 15.04也缺少libjpeg,因此每次安裝均失敗。顯然,有時候 Pillow 無法找到所需的庫,最簡單的解決方法是安裝dev版本並將其鏈接到用戶庫。編輯:也可以在Ubuntu 16.04中使用

sudo apt-get install python-dev
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib

pip install pillow

找到部分解決方案here

次佳思路

對於我自己和其他所有人,請注意,要使其在Elementary OS Luna(Ubuntu 12.04)上編譯,需要根據OP上的注釋安裝您的virtualenv python版本所需的python標頭。我正在使用默認的python版本並測試3.4(通過deadsnakes ppa),所以對我來說,這是:

sudo apt-get install python-dev
sudo apt-get install python3.4-dev

但!我仍然遇到相同的錯誤!我根據OP的答案檢查了.bashrc,但沒有任何匹配的導出。然後它擊中了我,我已經進行了一段時間的故障排除,並從其他地方的答案中嘗試了設置這些問題並且沒有重新啟動bash。

因此,請不要忘記重新啟動bash(或者我想是re-source)以確保您的導出與.bashrc相匹配!

編輯:這有點長的評論,但不是一個真正的答案。如有必要將進行修改。

第三種思路

我也有同樣的頭痛…

解決方案是在閱讀文檔後找到的,內容為:

從3.0.0版開始Pillow需要libjpeg …

因此,請嘗試上一個:

pip install pillow==2.9.0

(它適用於python 2.6及更高版本)

祝好運!

第四種思路

新版本3.0無效,我們需要安裝適用於Django的2.9.0版本。在虛擬環境中執行此操作:

pip install Pillow==2.9.0

我在使用Elementary OS的Ubuntu中也應如此。

第五種思路

終於我找到了解決這個頭痛的辦法!

原來我在.bashrc中有兩個標誌設置:

export CFLAGS=-Qunused-arguments                                    
export CPPFLAGS=-Qunused-arguments

該.bashrc是從我的Macbook Pro複製而來的,這兩個標誌是XCODE所必需的。看來它們將在Linux中中斷。

刪除這兩個標誌後,pip install Pillow將按預期工作。

謝謝大家的幫助。

第六種思路

Ubuntu 16.04 virtualenv

pip install pillow==2.9.0

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10624.html,未經允許,請勿轉載。