我已经用Python(3.7)创建了一个脚本来遍历目录并检查图像,以计算对象拍摄的图像量/计算图像中的空白量。
这在Python中有效,但是在使用PyInstaller转换为Windows exe文件时会引发OSError
for filename in os.listdir(path):
image = Image.open(filename)
width, height = image.size
# Check if each pixel in image is white (255, 255, 255) and calculate percentage of image is white
bg_count = next(n for n, c in image.getcolors(width * height) if c == (255, 255, 255))
img_count = width * height - bg_count
img_percent = img_count * 100.0 / width / height
image.close()
# If image doesn't meet requirements add to a csv created before the for loop
if img_percent >= percentage:
output_file.write(f"{filename} , {img_percent}%")
output_file.write("\n")
output_count += 1
在行图像= Image.open(文件名)上引起OSError
Traceback (most recent call last):
File "main.py", line 47, in <module>
File "main.py", line 23, in main
File "site-packages\PIL\Image.py", line 2705, in open
OSError: cannot identify image file '1640681.jpg'
[5132] Failed to execute script main
答案 0 :(得分:0)
我最近也遇到过同样的情况。如果我们的情况相同,则可以与其他图像格式文件(.png,.bmp等)一起使用,但是.jpg扩展名文件正确吗?
当您在像pipenv这样的虚拟环境中使用PyInstaller编译项目时,就会发生这种情况。
您应该使用Pip安装程序的所有程序包依赖项,包括PyInstaller,并在实际环境中直接使用PyInstaller将程序转换为Windows exe文件。
我不是专家,所以我真的不知道。我猜当在虚拟环境中使用PyInstaller时,它无法使用某些Windows dll。