ffmpeg:未找到(Conda环境+Gunicorn+Nginx)

3

我已经安装了 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,但后来将其删除了。这与错误无关,因为我可以在本地正常运行。


你能解决这个问题吗?我也遇到了同样的问题。 - arun n a
2
@arunna 好久不见了,我想我通过编写一个服务并提供环境目录 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
1个回答

0
我通过编写一个服务并提供环境目录来解决了这个问题。
Environment="PATH=/root/anaconda3/bin" 

跟随着
ExecStart=/root/anaconda3/envs/<app-name>/bin/gunicorn --workers 3 --bind unix:<app-name>.sock -m 007 wsgi:app

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接