我已经安装了 ffmpeg
并可以在命令行中运行它。我已经安装了 Anaconda,并且对于 which ffmpeg
命令得到了不同的结果,如下所示:
/usr/bin/ffmpeg
(base env)/root/anaconda3/envs/myenv/bin/ffmpeg
(myenv)
python app.py
- 这个应用程序使用了 Flask,我已经在本地主机上测试过并且按预期工作。
使用 gunicorn
运行仍然在本地工作。
当我使用 Nginx 进行部署时,它无法正常工作。它找不到 ffmpeg
。我收到错误信息 gunicorn[23436]: /bin/sh: 1: ffmpeg: not found
。
我的 Python 文件内使用如下所示:
subprocess.call('/root/anaconda3/envs/myenv/bin/ffmpeg ...)
(我尝试使用 ffmpeg
、完整路径和 Anaconda 路径,但都没有成功)
我怀疑我错过了 Nginx 的一些东西,它需要特殊的可执行文件配置。服务器配置如下:
server {
listen 80;
server_name x.x.x.x;
location / {
include proxy_params;
proxy_pass http://unix:/home/myapp/myapp.sock;
client_max_body_size 30M;
}
}
我曾经使用pip
安装过ffmpeg
,但后来将其删除了。这与错误无关,因为我可以在本地正常运行。
Environment="PATH=/root/anaconda3/bin"
,然后跟着ExecStart=/root/anaconda3/envs/<app-name>/bin/gunicorn --workers 3 --bind unix:<app-name>.sock -m 007 wsgi:app
解决了这个问题。 - Mirwise Khan