首页 > 解决方案 > 如何在 php-fpm shell_exec 中激活 anaconda 环境?

问题描述

我在 docker 容器中以 nginx 用户身份运行 php-fpm。Dockerfile 使用 pandas 包创建名为“ss”的正确 anaconda 环境。当我附加到 docker 容器时它工作正常。

Docker CMD 运行一个 init.sh 脚本:

. /opt/conda/etc/profile.d/conda.sh
conda activate /opt/conda/envs/ss
php-fpm --fpm-config /etc/php-fpm.conf
nginx -g 'daemon off;'

然后,一个 PHP 脚本使用运行 Python 脚本

shell_exec("python ss.py");

这与以下错误有关:

ImportError:没有名为 pandas 的模块

我尝试了 shell_exec 的各种组合,我尝试在运行脚本之前激活 env,但它大多出错:

CommandNotFoundError:您的 shell 未正确配置为使用“conda activate”

如何为所有 PHP shell_exec 脚本激活“ss”环境?

标签: phppythondockernginxanaconda

解决方案


你可以像这样直接使用。

shell_exec('/root/.conda/envs/my-rdkit-env/bin/python3 ss.py');


推荐阅读