程序運行產(chǎn)生以下錯誤
subprocess_call(cmd, logger=None)
File "/home/qst/miniconda3/lib/python3.8/site-packages/moviepy/tools.py", line 54, in subprocess_call
raise IOError(err.decode('utf8'))
OSError: convert-im6.q16: attempt to perform an operation not allowed by the security policy @/home/qst/tmp/tmps4cz1s6y.txt' @ error/property.c/InterpretImageProperties/3706. convert-im6.q16: no images defined PNG32:/home/qst/tmp/tmphx697hy6.png' @ error/convert.c/ConvertImageCommand/3229.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "3_addTitle.py", line 58, in <module>
title = TextClip(title_text, fontsize=title_font_size, color=title_font_color, font=title_font).set_duration(video.duration)
File "/home/qst/miniconda3/lib/python3.8/site-packages/moviepy/video/VideoClip.py", line 1146, in init
raise IOError(error)
OSError: MoviePy Error: creation of None failed because of the following error:
convert-im6.q16: attempt to perform an operation not allowed by the security policy @/home/qst/tmp/tmps4cz1s6y.txt' @ error/property.c/InterpretImageProperties/3706. convert-im6.q16: no images defined PNG32:/home/qst/tmp/tmphx697hy6.png' @ error/convert.c/ConvertImageCommand/3229.
解決方法:
這個錯誤是由于ImageMagick的安全策略限制導(dǎo)致的。ImageMagick是一個創(chuàng)建蹈矮、編輯砰逻、合成或轉(zhuǎn)換數(shù)字圖像的軟件套件,moviepy
在幕后使用它來處理圖像和視頻泛鸟。
錯誤信息指出ImageMagick的安全策略不允許執(zhí)行某個操作诱渤。這通常是由于默認(rèn)的ImageMagick安全策略配置文件限制了某些類型的操作,比如阻止了對文本文件的讀取谈况,這是出于安全考慮勺美。
要解決這個問題,你需要修改ImageMagick的安全策略碑韵。安全策略配置文件通常位于/etc/ImageMagick-6/policy.xml
或/etc/ImageMagick/policy.xml
赡茸,具體取決于你的系統(tǒng)配置和ImageMagick的版本。
警告:修改ImageMagick的安全策略可能會增加安全風(fēng)險祝闻,因為它放寬了對文件操作的限制占卧。請確保你理解這樣做的后果。
以下是修改安全策略的一般步驟:
打開終端联喘。
-
輸入以下命令來編輯安全策略文件(你可能需要管理員權(quán)限):
sudo nano /etc/ImageMagick-6/policy.xml
或者华蜒,如果文件位于不同的位置:
sudo nano /etc/ImageMagick/policy.xml
-
找到以下行:
<policy domain="path" rights="none" pattern="@*" />
這行定義了對于以
@
開頭的文件路徑的限制。 -
將
rights="none"
更改為rights="read|write"
豁遭,以允許對這些文件的讀寫操作叭喜。或者蓖谢,如果你想完全移除這個限制捂蕴,可以將整行注釋掉:<!-- <policy domain="path" rights="none" pattern="@*" /> -->
保存并關(guān)閉文件。
重新啟動你的計算機闪幽。