Python - 无法导入模块"PIL"



我已经编写了代码来压缩.py文件中的图像,并尝试使用transcrypt编译以转换为JS文件。在此过程中,我收到以下错误(屏幕截图),但是如果我使用IDE单独运行.py文件,它可以正常工作并压缩图像。

法典:

import PIL   
from PIL import Image as pil
class FileUpload:
def Images (self,arg):
# Open the image
im = pil.open(arg)
# Now save it
im.save("img_compressed.jpg", format="JPEG", quality=90)
fileupload = FileUpload()

错误:

python srcimgcompress>python -m transcrypt -b -m -n imageCompress.py
Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.6.101
Copyright (C) Geatec Engineering. License: Apache 2.0

Error while compiling (offending file last):
File '/python src/imgcompress/imageCompress.py', line 1, at import of:
File '/python/lib/site-packages/PIL/__init__.py', line 14, namely:
Can't import module 'PIL'
Aborted

屏幕截图

例如,以下JS库适用于在上传前压缩图像:

https://github.com/brunobar79/J-I-C

任何JS库都可以直接从Transcrypt使用,因此有很多选择。重点是:寻找JS而不是Python库。只是谷歌

JavaScript图像压缩浏览器

Transcrypt被故意设计为生活在JS生态系统中。

http://www.transcrypt.org/docs/html/what_why.html#the-ecosystem-different-batteries

要在不使用库的情况下进行压缩,请参阅

如何在浏览器中通过Javascript压缩图像?

请注意,您可以使用以下内容嵌入任何未经修改的 JS 代码:

http://www.transcrypt.org/docs/html/special_facilities.html#inserting-literal-javascript-pragma-js-and-include

但这很少是必要的,你可以直接从Transcrypt使用上面的技巧,只需转换为Python语法即可。所有 DOM 函数都可用。

Transcrypt不能使用C扩展库,只能使用纯Python库。这就是为什么他们将Numpy API的一部分重新实现为Numscrypt,而不仅仅是使用Numpy。

有一些纯Python库具有与Pillow类似的功能,例如pymaging,但我不知道它们中的任何一个是否具有您需要的功能,速度或健壮性;您必须亲自尝试它们。

如果你不在浏览器中运行它,它也可以使用 Node.js 包,并且有用于处理图像文件的 Node 包。我怀疑它们中的任何一个都是 Pillow 的确切替代品,但如果您只想要基本功能,那么编写一个try/except应该很容易,该/可以导入任何可用的并定义几个包装器。

如果您在浏览器中运行...好吧,那么你无法访问文件系统,这排除了很多 PIL 功能......但另一方面,您已经从 DOM 获得了本机图像对象。

相关内容

  • 没有找到相关文章

最新更新