У меня есть скрипт (размещенный на дроплете DigitalOcean ubuntu 18.04.3), который выполняется из crontab и выглядит примерно так:
0 5 * * * cd /home/john/clips/; /home/john/clips/venv/bin/python3 /home/john/clips/clip_compilator.py
И это работает, но как только он достигает следующей строки внутри одного из скриптов
name = mp.TextClip(f"John".upper(),
color='#6441A4',
stroke_color="black",
align='West',
fontsize=90,
font='BigNoodleTitling', method='label')\
.margin(left=95, opacity=0)\
.set_position(("left", "top"))
он падает с
Traceback (most recent call last):
File "/home/john/clips/venv/lib/python3.6/site-packages/moviepy/video/VideoClip.py", line 1161, in __init__
subprocess_call(cmd, logger=None)
File "/home/john/clips/venv/lib/python3.6/site-packages/moviepy/tools.py", line 46, in subprocess_call
proc = sp.Popen(cmd, **popen_params)
File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'unset': 'unset'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/john/clips/clip_compilator.py", line 44, in <module>
current_clip.add_videofile(add_text(current_clip))
File "/home/john/clips/clip_editor.py", line 16, in add_text
fontsize=90, font='BigNoodleTitling', method='label')\
File "/home/john/clips/venv/lib/python3.6/site-packages/moviepy/video/VideoClip.py", line 1170, in __init__
raise IOError(error)
OSError: MoviePy Error: creation of None failed because of the following error:
[Errno 2] No such file or directory: 'unset': 'unset'.
.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 in file conf.py, or that the path you specified is incorrect
Когда я запускаю ту же команду в bash (вне crontab), все работает нормально.
По какой-то причине происходит сбой именно на TextClip
, и я не знаю почему.
Некоторые предположили, что решение может заключаться в комментировании. конкретная строка в policy.xml
ImageMagick, но мой вывод convert -list policy
таков:
unset
, распространяемый с помощью ImageMagick? (На самом деле это больше похоже на то, что он полагается наunset
команду оболочки..? Если так, может быть, есть другая оболочка по умолчанию, которая несовместима.. как выглядит исходный код? :D) - person user2864740   schedule 22.11.2019/bin/sh
(указывает на)? Если это неbash
, возможно, стоит попробовать и сделать так... сделав несколько предположений о том, что делает базовый код. - person user2864740   schedule 22.11.2019/bin/sh
? - person Tristo   schedule 22.11.2019ls -l /bin/sh
, чтобы показать, на что он указывает. Повторная ссылка на другое место — это глобальное изменение. Кроме того, если указанная цель поддерживаетunset
, я бы оставил ее в покое (см. соответствующее руководство). - person user2864740   schedule 22.11.2019lrwxrwxrwx 1 root root 4 Oct 21 15:48 /bin/sh -> dash
. Повлияет ли изменение его на bash на ошибкуunset
? - person Tristo   schedule 23.11.2019