簡體   English   中英

如何在不使用Pillow的情況下在Python中調整圖像大小

[英]How to resize an image in Python without using Pillow

我的Django站點托管在Azure上。

它允許用戶上傳照片。 我需要一種方法來調整系統大小,並可能旋轉照片。

看起來很簡單,我嘗試使用Pillow庫,但由於它在本地運行,由於多種原因,它不會部署到Azure。 如果需要的話,我可以具體說明,但這在這里有很好的記錄

我什至嘗試構建一個Pillow輪子並進行部署,但是Azure拒絕加載它,說它是錯誤的平台(即使我匹配了Python 2.7版本和32位)。 我也嘗試上傳64位版本,但沒有任何效果。 因此,在這一點上,我只想將Pillow拋在腦后,並尋求另一種在沒有Pillow的情況下用Python實現此目的的方法。 還有其他方法嗎?

我嘗試過的事情的注釋:

1)以正常方式安裝枕頭會顯示以下熟悉的錯誤消息:
ValueError: zlib is required unless explicitly disabled using --disable-zlib, aborting

2)然后通過執行以下操作創建了一個輪子: pip wheel Pillow --wheel-dir=requirements

但是,這會在pip.log中產生以下錯誤:
Pillow-3.4.2-cp27-cp27m-win32.whl is not a supported wheel on this platform. Pillow-4.1.1-cp27-cp27m-win32.whl is not a supported wheel on this platform.
我確定我要在32位平台上運行Python 2.7,所以不確定為什么會抱怨。

浪費了幾天之后,我發現了未安裝Pillow的原因。 這不是因為輪子與平台不兼容,而是因為點子太舊了。

Azure目前正在使用pip版本1.5.6-對他們感到羞恥。 此版本無法識別車輪。

這是我的解決方法:轉到Kudu DebugConsole:
HTTPS:// [SITE_NAME] .scm.azurewebsites.net / DebugConsole

激活您的VirtualEnv:
env\\Scripts\\activate

請注意,如果您運行pip --version該版本號的年齡。 現在運行以下命令來升級它:
python -m pip install -U pip
請注意,您無法升級D:\\ Python27中的默認點,因為您無權訪問它,但可以在虛擬環境中升級本地點。 現在運行pip --version以確保您正在運行最新版本(即> = 9.0.1)。

現在在requirements.txt內部,您可以通過在頂部添加一行來告訴pip在特定文件夾中尋找輪子,例如:
--find-links requirements (這意味着它將搜索需求文件夾)。
這是創建枕形輪的方法。 您可以在本地或Kudu控制台上運行它。 如果在本地運行它,請確保您的python版本與您在Azure上使用的版本(2.7或3.X)匹配,並且默認情況下,請確保使用32位版本。
pip install wheel (僅當您未安裝輪子時)
pip wheel Pillow --wheel-dir=requirements
這會將兩個文件復制到您的需求文件夾中:Pillow-X.whl和olefile-X.whl。 如果要通過git push進行部署,請確保將它們添加到源代碼管理中。 將它們推送到服務器。

現在,您可以在Kudu DebugConsole中測試.whl文件(在部署之后),並通過運行以下命令測試安裝: pip install --no-index -r requirements.txt
現在可以正常工作並安裝Pillow!

部署時請密切注意是否顯示“ Found compatible virtual environment. Creating python 2-7 virtual environment. 前者就是你想要的。 但是,如果您看到后者,則意味着部署已經清理了您的env文件夾,並將您重置回pip 1.5.6。 我不知道為什么有時會這樣做,但是在部署后嘗試對env文件夾進行盡可能少的更改(例如,僅升級pip就是這樣),以避免這種情況。

在Azure平台上安裝Pillow不能為您提供太多幫助。 但是我使用手動調整大小和其他內容的日子早已一去不復返了。 我一直在使用thumbor https://thumbor.org/

只需設置相同的受保護實例,然后使用它動態調整大小,裁剪和管理圖像即可。

希望能幫助到你

還有另一個SO線程Microsoft Azure Django Python安裝錯誤Pillow ,它具有在Azure上安裝Pillow的類似問題。 我認為我的回答對解決您的問題很有幫助。 如果對我的解決方案有任何疑問,請隨時告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM