Python: ImageIO ValueError в VirtualEnv
Я использую imageio
сгенерировать GIF из набора PNG, которые я создал с помощью PIL. Вот мой код (найден здесь):
import imageio
path = "./img/"
os.chdir(path)
filenames = sorted((fn for fn in os.listdir('.') if fn.endswith('.png')))
with imageio.get_writer('./img/movie.gif', mode='I') as writer:
for filename in filenames:
image = imageio.mimread(filename)
writer.append_data(image)
Тем не менее, я продолжаю получать следующую ошибку:
Traceback (most recent call last):
File "gifcreate.py", line 7, in <module>
image = imageio.mimread(filename)
File "/Users/felipe_campos/Documents/DECO/venv/lib/python2.7/site-packages/imageio/core/functions.py", line 261, in mimread
reader = read(uri, format, 'I', **kwargs)
File "/Users/felipe_campos/Documents/DECO/venv/lib/python2.7/site-packages/imageio/core/functions.py", line 108, in get_reader
'in mode %r' % mode)
ValueError: Could not find a format to read the specified file in mode 'I'
У кого-нибудь есть идеи относительно того, что я могу сделать? Я пытался запустить его за пределами виртуальной среды, но он продолжает говорить мне ImportError: No module named imageio
(то же самое со Scipy и несколькими другими модулями), так что я не знаю, что делать.
РЕДАКТИРОВАТЬ:
Разобрался, просто используйте imread (имя файла) вместо mimread (имя файла), и все заработало нормально.
1 ответ
Это выглядит как дефект / ошибка.
for filename in filenames:
в этом случае имена файлов - это str, который является итеративным, и python с радостью перебирает его.
Почему бы не попробовать filenames = ['./img/', ]
и посмотрим, что получится.
(Очень быстрый взгляд на документы для imageio, и я не уверен, что вызывающая подпись ожидает каталог - я думаю, что он ищет фактическое имя файла)
uri : {str, bytes, file}
The resource to load the images from. This can be a normal filename, a file in a zipfile, an http/ftp address, a file object, or the raw bytes.
Если вы хотите выполнить итерацию по всем файлам в каталоге, возможно, посмотрите на os в python.