[英]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.