[英]can't find '__main__' module
我需要一些幫助。 我從 Ubuntu 18.04.05 LTS 終端(輸入 python filename.py )運行下面的代碼(使用 Python 3.7),我可以在網頁上查看結果( 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
回溯(最近一次調用最后一次):
文件“”,第 3 行,在 app.run() 中
文件“/home/name/anaconda3/lib/python3.7/site-packages/flask/app.py”,第 990 行,運行 run_simple(host, port, self, **options)
文件“/home/name/anaconda3/lib/python3.7/site-packages/werkzeug/serving.py”,第1050行,在run_simple run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
文件“/home/name/anaconda3/lib/python3.7/site-packages/werkzeug/_reloader.py”,第339行,在run_with_reloader sys.exit(reloader.restart_with_reloader())
系統退出: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
您可能會注意到您的終端與您的虛擬環境目錄具有相同的詞,這是正常的,並且這也表明您實際上已經激活了它。 如果您遇到任何問題,請參考:
https://flask.palletsprojects.com/en/1.1.x/installation/
好的,下一步是創建python文件。 你可以app.py
命名它,對我來說,我將它命名為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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.