gpt4 book ai didi

python - 使用 PyInstaller (Python 2) 后为 "ImportError: cannot import name _imaging"

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:24 27 4
gpt4 key购买 nike

我用 Python 2 编写的代码在从 Python 运行时工作得很好,但是在我通过 PyInstaller 发送脚本并运行可执行文件后,它会输出:

Traceback (most recent call last):
File "<string>", line 26, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
exec(bytecode, module.__dict__)
File "/home/ben/Documents/Programming/Python/Weasyl/Test Scripts/build/test3/out00-PYZ.pyz/PIL.PngImagePlugin", line 40, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
exec(bytecode, module.__dict__)
File "/home/ben/Documents/Programming/Python/Weasyl/Test Scripts/build/test3/out00-PYZ.pyz/PIL.Image", line 53, in <module>
ImportError: cannot import name _imaging

我不完全确定为什么导入此模块时出现问题,因为 PyInstaller 将 Tkinter 和 PIL 列为兼容。完整的代码如下:

#!/usr/bin/env python

from Tkinter import *
from PIL import ImageTk, Image
import os

root = Tk()
name = Label(root, text="(username)", font="Arial 20")
name.grid(row=0, column=0)
status = Label(root, text="(login status)")
status.grid(row=1, column=0)
img = ImageTk.PhotoImage(Image.open(".avatar.png"))
panel = Label(root, image=img, relief=RAISED, height=100, width=100)
panel.grid(row=0, column=1, columnspan=2, rowspan=2)
root.mainloop()

我假设问题出在 from PIL import ImageTk, Image 上,但无法使用该模块,因为我想使用的图像是 PNG 格式,并且就我知道,除了使用该模块之外,Tkinter 仅支持 GIF 格式。

编辑:如果我无法将此模块与 PyInstaller 一起使用,是否有办法让 PNG 图像在该模块之外的 Tkinter 中显示?

最佳答案

我也遇到了类似的问题。尽管 PyInstaller 似乎没有提示,但 PIL 模块成像不起作用。不过,这种情况是在我更新到 Linux Mint 17 后才发生的。之前用过 Mint 15,程序在那里编译并运行得很好。

我想我会尝试旧版本的 PIL 或其他加载纹理的方法...

更新:好的,好消息!看来该问题已在 PyInstaller 的当前开发版本中得到解决。可以在这里下载: https://github.com/pyinstaller/pyinstaller

我还尝试更改所有纹理代码以使用 PyGame 而不是 PIL(因为无论如何我都在程序中使用它),但是在使用 PyInstaller 2.1 制作可执行文件后运行 PyGame 也遇到了问题。

但是,使用 GitHub 上的 PyInstaller 当前开发版本,PyGame 和 PIL 都可以正常工作!

关于python - 使用 PyInstaller (Python 2) 后为 "ImportError: cannot import name _imaging",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24797631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com