从父目录运行flask脚本

2024-07-05 14:09:38 发布

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

我有python脚本python_proj.py。只有很少的打印和简单的函数。它调用一个flask脚本:

os.system("flask run")

Flask脚本位于同一目录中。当我从当前目录中的终端运行这些命令时,一切正常:

user123@user123:~/PycharmProjects/python_and_bash$ ./python_proj.py

但是当我在父目录中(例如'~')并尝试运行此脚本时:

user123@user123:~$ ./PycharmProjects/python_and_bash/python_proj.py

它不起作用,给我这个错误:

* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Usage: flask run [OPTIONS]

Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.

怎么做?我需要为非技术伙伴发送此应用程序。无论何时何地,它都应该有效


Tags: andruninpy目录脚本bashflask
2条回答

我在proj_python.py脚本中添加了这些行。现在它起作用了

 path = pathlib.Path(os.path.realpath(__file__))
 path = str(path.parent) + "/app.py"
 os.system(path)

注意!不要把os.system("flask run")放在这些行后面!这将导致flask脚本启动2次!第一次启动将由以下原因引起:os.system(path),之后ctrl+c或中断信号os.system("flask run")将再次启动

您可以使用以下代码找到脚本目录的绝对路径:

import pathlib


parent_folder = pathlib.Path(__file__).parent.absolute() # Get the absolute path of parent folder

os.environ['FLASK_APP'] = parent_folder / 'your_flask_app.py' # Set environment variable
os.system("flask run")

相关问题 更多 >