【发布时间】:2019-03-11 01:00:12
【问题描述】:
我正在构建一个使用php 运行后端并需要从python 调用函数的应用程序。
我知道我可以使用exec() 从php 调用python 函数。
但是,我的python 函数是在特定的conda 环境下运行的,该环境专门为该环境安装了软件包。
当我从php 调用它时,如何确保python 在特定环境中运行?
【问题讨论】:
我正在构建一个使用php 运行后端并需要从python 调用函数的应用程序。
我知道我可以使用exec() 从php 调用python 函数。
但是,我的python 函数是在特定的conda 环境下运行的,该环境专门为该环境安装了软件包。
当我从php 调用它时,如何确保python 在特定环境中运行?
【问题讨论】:
首先要尝试使用 Python 解释器从您要使用的特定环境中运行您的 Python 脚本,例如(在 Windows 上):
C:\path\to\conda\env\python.exe myscript.py
如果这不起作用,请编写一个批处理文件或 shell 脚本,首先 activates 您选择的环境,然后运行 Python 脚本。
【讨论】:
这是我在 PHP 脚本中所做的,以便在开发服务器(Windows 上)和 Linux 上的生产服务器上运行它:
if (preg_match ("/win32|win64/i", $_SERVER['SERVER_SOFTWARE'])) {
$cmd = "call conda.bat activate && set PYTHONIOENCODING=utf-8 && python myscript.py";
}
else {
$cmd = "export PYTHONIOENCODING=utf-8 && python3 myscript.py";
}
根据您的安装调整此示例(python 脚本的路径,如果不是“基本”环境,则为 conda 环境名称等)。 https://rc-docs.northeastern.edu/en/latest/software/conda.html
【讨论】: