找不到“__main__”模块
can't find '__main__' module
我需要一些帮助。
我 运行 下面的代码(使用 Python 3.7)来自 Ubuntu 18.04.05 LTS 终端(输入 python filename.py ),我可以在网页 (http://127.0.0.1:500/)
然而,当我 运行 使用 Spyder (v4.1.4) 的代码时,当我包含代码行 app.config["DEBUG"] = True; 时遇到以下错误;或者,我在 if __name__ =='__main__'
语句中包含代码行 app(debug = True)。
如果我删除此行,一切正常。
这个问题以前可能有人回答过,但我无法从答案中解开答案。
app = Flask(__name__)
app.config["DEBUG"] = True
@app.route('/')
def hello():
return 'HELLO'
if __name__=='__main__':
#app.debug = True
app.run()
这是 Python 3.7 解释器的输出:
* Serving Flask app "__main__" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with inotify reloader
/home/name/anaconda3/bin/python: can't find '__main__' module in /home/name/Documents /name/Contents/Python/flask_project/api'
An exception has occurred, use %tb to see the full traceback.
SystemExit: 1
/home/name/anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3425: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
%tb
回溯(最近调用最后):
File "", line 3, in
app.run()
File "/home/name/anaconda3/lib/python3.7/site-packages/flask/app.py", line 990, in run
run_simple(host, port, self, **options)
File "/home/name/anaconda3/lib/python3.7/site-packages/werkzeug/serving.py", line 1050, in run_simple
run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
File "/home/name/anaconda3/lib/python3.7/site-packages/werkzeug/_reloader.py", line 339, in run_with_reloader
sys.exit(reloader.restart_with_reloader())
SystemExit: 1
这可能是因为您正在使用 anaconda3 作为您的主要解释器。我的系统中安装了 Anaconda,每当我在使用 Flask 时将其用作主要解释器时,都会出现很多错误。我建议您不要使用 Anaconda,而是使用虚拟环境并使用“vanilla”python.
pip install virtualenv
与其他框架不同,flask 需要一些设置才能完成任务。由于需要设置,因此需要虚拟环境。那么,这个 virtualenv 是做什么的呢?它的功能如其名,通过在子文件夹中安装 python 以及项目中可能需要的其他必要内容来创建虚拟环境。
完成后,创建一个文件夹作为测试项目,而不是创建单个文件。之后,创建一个虚拟环境:
virtualenv name-of-the-sub-folder
名称可以是任何名称,我的工作流程总是将其命名为 env
。
安装完成后,通过执行以下操作激活虚拟环境:
source name-of-the-sub-folder/bin/activate
您可能会注意到您的终端与您的虚拟环境目录有相同的字样,这是正常的,这也表明您已经实际激活了它。如果您遇到任何问题,请参考:
How to activate virtualenv?
https://flask.palletsprojects.com/en/1.1.x/installation/
好的,下一步是创建 python 文件。你可以随意命名,对我来说,我将它命名为app.py
。 (注意:如果您使用的是 spyder,请将项目的解释器更改为项目文件所在的 python.exe。或者,如果您使用的是文本编辑器,请使用激活的终端 运行代码 python app.py
)
完成后,返回您用来激活虚拟环境的终端并执行以下操作:
pip install flask
这会将框架安装在您的虚拟环境中,而不是在您的系统中。完成后,粘贴您用于测试烧瓶的相同代码或使用下面粘贴的代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == "__main__":
app.run(debug=True)
if not os.path.exists('db.sqlite'):
db.create_all()
我需要一些帮助。 我 运行 下面的代码(使用 Python 3.7)来自 Ubuntu 18.04.05 LTS 终端(输入 python filename.py ),我可以在网页 (http://127.0.0.1:500/)
然而,当我 运行 使用 Spyder (v4.1.4) 的代码时,当我包含代码行 app.config["DEBUG"] = True; 时遇到以下错误;或者,我在 if __name__ =='__main__'
语句中包含代码行 app(debug = True)。
如果我删除此行,一切正常。
这个问题以前可能有人回答过,但我无法从答案中解开答案。
app = Flask(__name__)
app.config["DEBUG"] = True
@app.route('/')
def hello():
return 'HELLO'
if __name__=='__main__':
#app.debug = True
app.run()
这是 Python 3.7 解释器的输出:
* Serving Flask app "__main__" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with inotify reloader
/home/name/anaconda3/bin/python: can't find '__main__' module in /home/name/Documents /name/Contents/Python/flask_project/api'
An exception has occurred, use %tb to see the full traceback.
SystemExit: 1
/home/name/anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3425: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
%tb
回溯(最近调用最后):
File "", line 3, in app.run()
File "/home/name/anaconda3/lib/python3.7/site-packages/flask/app.py", line 990, in run run_simple(host, port, self, **options)
File "/home/name/anaconda3/lib/python3.7/site-packages/werkzeug/serving.py", line 1050, in run_simple run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
File "/home/name/anaconda3/lib/python3.7/site-packages/werkzeug/_reloader.py", line 339, in run_with_reloader sys.exit(reloader.restart_with_reloader())
SystemExit: 1
这可能是因为您正在使用 anaconda3 作为您的主要解释器。我的系统中安装了 Anaconda,每当我在使用 Flask 时将其用作主要解释器时,都会出现很多错误。我建议您不要使用 Anaconda,而是使用虚拟环境并使用“vanilla”python.
pip install virtualenv
与其他框架不同,flask 需要一些设置才能完成任务。由于需要设置,因此需要虚拟环境。那么,这个 virtualenv 是做什么的呢?它的功能如其名,通过在子文件夹中安装 python 以及项目中可能需要的其他必要内容来创建虚拟环境。
完成后,创建一个文件夹作为测试项目,而不是创建单个文件。之后,创建一个虚拟环境:
virtualenv name-of-the-sub-folder
名称可以是任何名称,我的工作流程总是将其命名为 env
。
安装完成后,通过执行以下操作激活虚拟环境:
source name-of-the-sub-folder/bin/activate
您可能会注意到您的终端与您的虚拟环境目录有相同的字样,这是正常的,这也表明您已经实际激活了它。如果您遇到任何问题,请参考:
How to activate virtualenv?
https://flask.palletsprojects.com/en/1.1.x/installation/
好的,下一步是创建 python 文件。你可以随意命名,对我来说,我将它命名为app.py
。 (注意:如果您使用的是 spyder,请将项目的解释器更改为项目文件所在的 python.exe。或者,如果您使用的是文本编辑器,请使用激活的终端 运行代码 python app.py
)
完成后,返回您用来激活虚拟环境的终端并执行以下操作:
pip install flask
这会将框架安装在您的虚拟环境中,而不是在您的系统中。完成后,粘贴您用于测试烧瓶的相同代码或使用下面粘贴的代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == "__main__":
app.run(debug=True)
if not os.path.exists('db.sqlite'):
db.create_all()