«ImageMagick не установлен», когда ImageMagick уже установлен

Я использую MoviePy, для которого требуется ImageMagick, но когда я запускаю свой код, я получаю следующую ошибку:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/moviepy/video/VideoClip.py", line 1262, in __init__
    subprocess_call(cmd, logger=None)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/moviepy/tools.py", line 43, in subprocess_call
    raise IOError(err.decode("utf8"))
OSError: convert: label expected `@/var/folders/tw/25c_f4h57bs5hslr5vm1fns80000gq/T/tmpejmzojaq.txt' @ error/annotate.c/GetMultilineTypeMetrics/797.
convert: no images defined `PNG32:/var/folders/tw/25c_f4h57bs5hslr5vm1fns80000gq/T/tmp9y2p9b0s.png' @ error/convert.c/ConvertImageCommand/3342.


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/hypnoticocelot/Downloads/python/tikgenrewrite/tikgen.py", line 366, in <module>
    tikgen()
  File "/Users/hypnoticocelot/Downloads/python/tikgenrewrite/tikgen.py", line 360, in tikgen
    subText = TextClip(subText, font=fontFile, fontsize=75, color=fontColor, stroke_color=strokeColor, stroke_width=3).set_position(("center", 650)).set_duration(mainVideo.duration)
  File "<decorator-gen-84>", line 2, in __init__
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/moviepy/decorators.py", line 89, in wrapper
    return f(*new_a, **new_kw)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/moviepy/video/VideoClip.py", line 1272, in __init__
    raise IOError(error)
OSError: MoviePy Error: creation of None failed because of the following error:

convert: label expected `@/var/folders/tw/25c_f4h57bs5hslr5vm1fns80000gq/T/tmpejmzojaq.txt' @ error/annotate.c/GetMultilineTypeMetrics/797.
convert: no images defined `PNG32:/var/folders/tw/25c_f4h57bs5hslr5vm1fns80000gq/T/tmp9y2p9b0s.png' @ error/convert.c/ConvertImageCommand/3342.
.

.This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagick binary. Check the documentation.

Я думал, что ImageMagick может быть не установлен, но работает brew install ImageMagick, я уже на последней версии и полностью обновлен. Я использую Mac, поэтому я не уверен, что путь к двоичному файлу ImageMagick по какой-то причине неверен? Но я не вижу никакого способа исправить это.

Какая версия Imagemagick требуется для MoviePy? Это ИМ 6 или ИМ 7?

fmw42 10.01.2023 23:00

Я не уверен, я думаю, что IM7 в порядке? В последний раз я использовал moviepy примерно в августе, и версия 7.1.0-45 работала нормально, я недавно обновился до версии 7.1.0-57, но все равно ничего.

HypnoticOcelot 10.01.2023 23:23

Возможно, у вас были и IM 6, и IM 7, и он хочет IM 6. Проверьте совместимость с MoviePy. Также убедитесь, что ваша переменная среды $PATH имеет путь к Imagemagick, чтобы MoviePy мог его найти. Примечание. Я мало знаю о MoviePy.

fmw42 10.01.2023 23:51

Вы уверены, что файл PNG существует и у вас есть правильный путь к нему?

fmw42 10.01.2023 23:53

у меня нет png-файла как части моего кода, я только что сделал brew install imagemagick снова, который обновил его, я не думаю, что im6 когда-либо устанавливался, но он работал пару месяцев назад, и с тех пор moviepy не обновлялся

HypnoticOcelot 10.01.2023 23:58

Вы пытаетесь создать файл PNG из текста? Ваше первое сообщение об ошибке жалуется на текст uff-8, а затем нет файла png. Какой текст вы пытались использовать? Возможно, в вашей установке отсутствует какой-либо файл делегата. Что вы получаете от magick -version?

fmw42 11.01.2023 01:49

Версия: ImageMagick 7.1.0-57 (Beta) Q16-HDRI x86_64 20701 imagemagick.org Авторские права: (C) 1999 ImageMagick Studio LLC Лицензия: imagemagick.org/script/license.php Особенности: Cipher DPC HDRI Модули OpenMP(5.0) Делегаты (встроенные): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib Компилятор: gcc (4.2)

HypnoticOcelot 11.01.2023 02:05

Я могу добавить свой скрипт на Python, если это поможет

HypnoticOcelot 11.01.2023 02:05

Ваш Imagemagick выглядит нормально. Вы можете предоставить свой скрипт Python. Я знаю это немного. Но я не знаю MoviePy. Что вы делаете с MoviePy — для какой функции вы его используете?

fmw42 11.01.2023 03:49

Если вы удалите часть MoviePy из своего скрипта, остальные запустятся успешно?

fmw42 11.01.2023 04:14

moviepy — это основная часть сценария, я беру два видео и накладываю их друг на друга с помощью compositevideoclip. Вы можете узнать больше о moviepy здесь: zulko.github.io/moviepy/index.html , я использую версию 2.0.0.dev2 - фрагмент моего скрипта на Python здесь: pastebin.com/krQeF7ZM

HypnoticOcelot 11.01.2023 04:34

Какой шрифт вы пытаетесь использовать? Возможно, он отсутствует или не является приемлемым шрифтом для Imagemagick, который использует fontconfig для обработки шрифтов.

fmw42 11.01.2023 05:09

Достаточно ли у вас места в каталоге /tmp. Возможно, в каталоге /tmp недостаточно места для текстового файла, который вы пытаетесь создать. Нужна ли MoviePy какая-либо настройка для Imagemagick — указание используемых каталогов?

fmw42 11.01.2023 05:13
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
13
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение, которое я нашел, заключалось в том, что мой элемент TextClip плохо воспроизводился, когда текст в клипе был установлен на "". Оператор if, проверяющий, был ли он пуст или не был легко исправлен.

Другие вопросы по теме

Twitter API перенаправляет после авторизации, но не дает мне PIN-код
Запустите несколько файлов .py в блокноте Jupyter
Есть ли способ угодить проверке типов, кроме isinstance?
Перебрать файл excel и создать новый словарь для каждого нового элемента в столбце
Установите условие внутри лямбда-функции в зависимости от того, является ли значение, захваченное с помощью регулярного выражения, None или ""
Как преобразовать код для записи данных в xlsx вместо csv, используя python без панд?
Обновление ключей словаря в одну строку
Правильный способ обработки гигантских строк с многопроцессорной обработкой
Создает новый словарь, состоящий из другого ключа словаря и двух переменных
Установите регулярное выражение с множественным выбором, чтобы попытки сопоставления всегда выполнялись слева направо, независимо от того, пытается ли другое предыдущее регулярное выражение захватить больше символов?