Python Flask应用程序结构中的模块错误
您好,我在Windows中工作,正在努力理解如何设置我的flask应用程序,以便可以从命令行运行它。灵感来自。我的实际目录结构如下所示:Python Flask应用程序结构中的模块错误,python,flask,Python,Flask,您好,我在Windows中工作,正在努力理解如何设置我的flask应用程序,以便可以从命令行运行它。灵感来自。我的实际目录结构如下所示: /yourapplication __init__.py config.py views.py start_server.py /static style.css /templates layout.html
/yourapplication
__init__.py
config.py
views.py
start_server.py
/static
style.css
/templates
layout.html
index.html
login.html
我的init.py文件如下
from flask import Flask
app = Flask(__name__)
import yourapplication.views
app.config.from_object('config')
DEBUG=True
from yourapplication import app
if __name__ == "__main__":
app.run()
因为我有一个init.py,“YourApplication”是一个包,如EclipseIDE中所示
我的config.py文件如下
from flask import Flask
app = Flask(__name__)
import yourapplication.views
app.config.from_object('config')
DEBUG=True
from yourapplication import app
if __name__ == "__main__":
app.run()
我的setup.py文件如下
from flask import Flask
app = Flask(__name__)
import yourapplication.views
app.config.from_object('config')
DEBUG=True
from yourapplication import app
if __name__ == "__main__":
app.run()
从设置工具导入设置
setup(
name='yourapplication',
packages=['yourapplication'],
include_package_data=True,
install_requires=[
'flask',
],
)
我的启动服务器.py文件如下
from flask import Flask
app = Flask(__name__)
import yourapplication.views
app.config.from_object('config')
DEBUG=True
from yourapplication import app
if __name__ == "__main__":
app.run()
我可以从Eclipse(IDE)运行start_server.py,然后Web服务器启动,
但是当我从Windows命令行cd到“YOURAPPLICATION”文件夹并运行start_server.py时,我得到“ImportError:没有名为YOURAPPLICATION的模块”
/projects_folder
/yourapplication
/folder1
/myfolder2
从“项目”文件夹(Windows CMD行)中,我完成了以下操作:
c:\joebloggs\projects_folder>
set FLASK_APP=yourapplication
set FLASK_ENV=development
pip install -e .
flask run
仍然会得到相同的错误。
我真想知道,主干道在哪里?我无法理解启动web应用程序的入口点在哪里。
在我的例子中,我有启动服务器.py。我在EclipseIDE中运行它。setup.py中是否应提及此文件
仅仅为了测试,我是否不能简单地从命令行运行start_server.py来运行应用程序(也就是说,不执行所有pip安装-e和FLASK\u APP=your application之类的操作
我在构建我的应用程序时犯了什么错误
你在应用程序结构方面没有犯任何错误。应用程序结构很重要,但不同的项目遵循不同的结构。这并不是说你必须遵循文档中相同的结构
如何从命令行运行它
首先,您应该了解Python在调用import?时如何知道在何处查找包。Python导入通过搜索sys.path
sys.path
中列出的目录来工作。在您的应用程序中,path
列表不会包含自身。如何运行它?不要将cd放入您的应用程序中,然后按照运行链接文档中的说明
我该如何包装它,使它可以在另一台机器上运行(这台机器不会运行)
(有日食)
Eclipse与此无关。遵循相同的打包结构。如果安装了所有依赖项,它应该可以在其他机器上工作