【发布时间】:2017-02-19 09:19:00
【问题描述】:
我正在关注Flask Mega Tutorial,一旦我进入第二部分并重组我的文件夹结构以匹配他们的,我就遇到了一个问题,我无法导入 Flask。
我目前的文件夹结构如下
/FlaskTest
/app
/static, templates etc
/flask
/virtualenv folders etc
/tmp
run.py
据我所知,除了顶级目录的命名之外,文件夹结构是相同的。
在我的 __init__.py 文件 (/app/__init__.py) 中,我按照教程中的说明进行操作,
from flask import Flask
app = Flask(__name__)
from app import views
我收到“无法导入名称 'Flask'”的导入错误。我猜这个问题是因为烧瓶包安装到 /flask/lib/site-packages。
我的问题:如何引用flask/site-packages的子文件夹?
我已经通读了 python import system documentation,并且通过第一遍阅读它可以理解它,我可能需要执行类似 from flask import flask.Flask 或类似的操作。
更新:所以在 cd 浏览目录并检查 pip 列表之后,我意识到我的应用程序目录无法访问烧瓶。我在 app 目录中运行了 pip install flask 。现在我的网站运行了,但我不确定这是否是使用 Python 做事的最佳实践。请提供一些说明,说明安装软件包的最佳做法以及软件包所在的位置。
UPDATE 2:创建一个名为standalone 的目录之后。在这个文件夹中,我创建了一个名为standalone-test 的虚拟环境。有一次,我这样做了,我还 mkdir'ed 应用程序并从 FlaskTest 复制了它的内容,这样代码就会相同。我可以使用python run.py 运行run.py 脚本,但是我不能像您所说的那样运行python -m app 而不会遇到错误。如果有帮助,报错如下。
"没有模块名app.main;'app'是一个包,不能直接执行。
我可以运行python run.py,但我无法运行python -m app,正如你所说的
【问题讨论】:
-
您需要从
FlaskTest/子目录运行命令。
标签: python flask pip virtualenv