在windows环境中,已经安装ImageMagick,路径是d:\Tools\ImageMagick-7.1.1-Q16-HDRI\magick.exe,在代码中配置IMAGEMAGICK_BINARY的环境变量,执行如下代码:
示例代码:
import os
from moviepy.editor import TextClip
print ( TextClip.list("font") ) #这里出现异常
异常跟踪:
Traceback (most recent call last):
File "D:\Tools\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\Tools\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "d:\tools\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\__main__.py", line 39, in <module>
cli.main()
File "d:\tools\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy/..\debugpy\server\cli.py", line 430, in main
run()
File "d:\tools\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy/..\debugpy\server\cli.py", line 284, in run_file
runpy.run_path(target, run_name="__main__")
File "d:\tools\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 321, in run_path
return _run_module_code(code, init_globals, run_name,
File "d:\tools\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 135, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "d:\tools\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 124, in _run_code
exec(code, run_globals)
File "E:\Programs\testpy\Move_test.py", line 39, in <module>
print ( TextClip.list("font") )
File "E:\Programs\venvs\videoenv\lib\site-packages\moviepy\video\VideoClip.py", line 1171, in list
process = sp.Popen([get_setting("IMAGEMAGICK_BINARY"),
File "D:\Tools\Python310\lib\subprocess.py", line 969, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "D:\Tools\Python310\lib\subprocess.py", line 1438, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
解决办法:
先配置IMAGEMAGICK_BINARY的环境变量,再导入TextClip,即可解决,不需要修改lib\site-packages\moviepyconfig_defaults.py
修改代码:
import os
os.environ['IMAGEMAGICK_BINARY'] = r"d:\Tools\ImageMagick-7.1.1-Q16-HDRI\magick.exe"
from moviepy.editor import TextClip
print ( TextClip.list("font") )