首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从父目录运行烧瓶脚本

从父目录运行烧瓶脚本
EN

Stack Overflow用户
提问于 2020-11-02 19:11:04
回答 2查看 1.5K关注 0票数 1

我有python脚本python_proj.py。只有很少的指纹和简单的功能。它调用一个烧瓶脚本:

代码语言:javascript
运行
复制
os.system("flask run")

烧瓶脚本位于同一个目录中。当我在当前目录中的终端上运行这些文件时,所有操作都正常:

代码语言:javascript
运行
复制
user123@user123:~/PycharmProjects/python_and_bash$ ./python_proj.py

但是,当我在父目录(例如'~')中并试图运行以下脚本时:

代码语言:javascript
运行
复制
user123@user123:~$ ./PycharmProjects/python_and_bash/python_proj.py

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

代码语言:javascript
运行
复制
* 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.

该怎么做呢?我需要给非技术伙伴发送这个应用程序。它应该随时随地都起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-04 12:54:31

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

代码语言:javascript
运行
复制
 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")将再次启动。

票数 0
EN

Stack Overflow用户

发布于 2020-11-02 19:38:12

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

代码语言:javascript
运行
复制
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")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64651829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档