2017-06-21 14 views
3

の「__main__」モジュールを見つけることができませんが、私の最初の本の例で、私が遭遇した問題Pythonの仮想環境が、私はフラスコを勉強しています

>>> from flask import Flask 
>>> app = Flask(__name__) 
>>> @app.route('/') 
... def index(): 
...  return '<h1>Hello World!</h1>' 
... 
>>> if __name__ == '__main__': 
...  app.run(debug=True) 
... 
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
* Restarting with stat 
/home/tati/flasky/venv/bin/python: can't find '__main__' module in '' 
(venv) [email protected]:~/flasky$ python --version 
Python 2.7.12 

私のPythonのvenvが、これは大混乱を作成するかどう2.7.Doesのですか? 私は、コマンドライン(condaのPythonのインストール)

python --version 
Python 3.6.0 :: Anaconda custom (64-bit) 

どのように私はこの問題を解決することができますから、出て行けば?

+1

このコードをファイルに保存してインタープリタで実行するのではなく、ファイルを実行すると同じことが起こりますか? – viraptor

+0

@viraptor私は今venveからスクリプトを実行することができます、私はフロンティディレクトリにファイルを保存しました。 –

答えて

2

問題は、debug=Trueフラスコwill relaunch the python scriptで、リローダで追加のスレッドを実行するという問題です。コンソールから実行している場合、コンソールには何もないので、it can't find any script。 これを回避すると、debug=Trueを削除できます。

また、コンソールでは、呼び出す必要があるものだけを呼び出します。if __name__ == '__main__'イディオムは必要ありません。代わりのコードパスはありません。

とにかく、コンソールはFlaskを学ぶのに最適なオプションではありません。すぐにテンプレートや青写真などの追加ファイルを置く場所が必要です。

私の意見では、あなたのスタディパッケージのパッケージを作成することをお勧めします。 __init__.pyファイルと追加のapp.pyというチュートリアルコードを置いたディレクトリを作成してください。それに応じてPYTHONPATHを調整することを忘れないでください。

関連する問題