没有名为Flask的模块,PHP无法执行Flask

2024-06-16 11:00:56 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,我有一个PHP脚本,应该用exec命令启动一个Python flask文件。我的问题是文件在执行后总是有错误:

Traceback (most recent call last): File "/opt/lampp/htdocs/memeon_data/Python-3.8.3/main.py", line 2, in from flask import Flask, request, jsonify, render_template, Response ImportError: No module named flask

如果我在终端中运行脚本,它将正常工作。我没有在PHP脚本中激活Virtualenv,因为它会导致另一个错误,我了解到新版本中不再需要它。也许有人知道答案

PHP:

echo shell_exec ("python /opt/lampp/htdocs/memeon_data/Python-3.8.3/main.py 2> & 1");

终端:

source /opt/lampp/htdocs/memeon_data/Python-3.8.3/venv/bin/activate

python /opt/lampp/htdocs/memeon_data/Python-3.8.3/main.py

Tags: 文件py命令脚本终端flaskdatamain
1条回答
网友
1楼 · 发布于 2024-06-16 11:00:56

您必须激活venv才能将pythonFlask一起使用

您可以创建bash脚本,即run.sh

#!/bin/bash 
   
source /opt/lampp/htdocs/memeon_data/Python-3.8.3/venv/bin/activate
python /opt/lampp/htdocs/memeon_data/Python-3.8.3/main.py

并在PHP中使用bash运行它

shell_exec("/bin/bash /opt/lampp/htdocs/memeon_data/Python-3.8.3/run.sh 2>&1");

或者您可以跳过此脚本,并尝试使用在venv/bin内创建的python的完整路径,并且此脚本应使用安装在venv中的模块

shell_exec("/opt/lampp/htdocs/memeon_data/Python-3.8.3/venv/bin/python /opt/lampp/htdocs/memeon_data/Python-3.8.3/main.py 2>&1");

顺便说一句:它应该是没有空格的2>&1&用于在后台运行进程,如果有空格,它可能会将进程视为在后台运行,或者它会给出错误的语法

相关问题 更多 >