Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Windows上的PIL和JPEG库_Python_Windows_Jpeg_Python Imaging Library - Fatal编程技术网

Python Windows上的PIL和JPEG库

Python Windows上的PIL和JPEG库,python,windows,jpeg,python-imaging-library,Python,Windows,Jpeg,Python Imaging Library,我已经从源代码构建了Python的PIL库(由于安装程序可执行文件安装的版本中存在错误),并且可以从构建计算机上的jpg文件创建Image()对象,但是当我使用PyInstaller打包此Python应用程序时,应用程序无法打开JPEG图像。我是否如中所述正确构建了PIL,或者是否有其他问题 更新:错误消息为“IOError:编码器jpeg不可用” 编辑:从安装程序可执行文件安装的版本(对于1.1.7和1.1.6两个版本,如果不是早期版本的话)的问题在于它链接到VC90.DebugCRT库/程序

我已经从源代码构建了Python的PIL库(由于安装程序可执行文件安装的版本中存在错误),并且可以从构建计算机上的jpg文件创建Image()对象,但是当我使用PyInstaller打包此Python应用程序时,应用程序无法打开JPEG图像。我是否如中所述正确构建了PIL,或者是否有其他问题

更新:错误消息为“IOError:编码器jpeg不可用”


编辑:从安装程序可执行文件安装的版本(对于1.1.7和1.1.6两个版本,如果不是早期版本的话)的问题在于它链接到VC90.DebugCRT库/程序集,我不打算分发该库/程序集,PyInstaller在我的系统上找不到该库/程序集(尽管有一个版本).

您需要在安装时包含jpeg编码器/解码器dll,否则它将无法在尚未安装该dll的系统上工作

我自己还没有尝试过,但是您也可以通过静态链接来实现,而不是通过使用--enable static运行配置脚本。

您有两个选择:

  • 从中使用PIL的预构建二进制文件

  • 从源代码构建(注意,在获得JPEG支持之前,您必须先设置JPEG库,在windows上这并不容易)

  • 参考资料(解决您的问题不需要):

    • 枕头(PIL的叉子)的“先决条件”:
    • 请看奥斯卡的“关注”:
    请确保PythonImaging库(PIL)的分支pillow安装了JPEG支持。首次安装pillow时打印支持的格式。关于如何获得JPEG支持的说明是高度特定于平台的,但PIL指南也适用于枕头。一般来说,您需要确保在安装过程中安装并找到libjpeg dev


    +谢谢。因为我不知道我不应该将jpeg库与PIL链接,这比将jpeg库与PyInstaller构建捆绑在一起更有意义,所以我不会接受这个答案。我不相信PyInstaller有配置脚本,PyInstaller的setup.py不接受--enable静态参数。也许您建议我提供--enable static to PIL的configure脚本。