我有python脚本python_proj.py
。打印很少,功能简单。它调用了烧瓶脚本:
os.system("flask run")
烧瓶脚本位于同一目录中。当我从当前目录中的终端运行这些文件时,一切正常:
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.
该怎么做?我需要将此应用发送给非技术人员。它应该无处不在
答案 0 :(得分:0)
您可以使用以下代码找到脚本目录的绝对路径:
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")
答案 1 :(得分:0)
我在proj_python.py脚本中添加了这些行。现在可以了。
path = pathlib.Path(os.path.realpath(__file__))
path = str(path.parent) + "/app.py"
os.system(path)
请注意!请不要在这些行之后加上os.system("flask run")
!这将导致烧瓶脚本启动2次!第一次启动将由以下原因引起:os.system(path)
,在ctrl+c
之后或中断信号os.system("flask run")
将第二次启动。