2017-04-11 15 views
0

run.pyファイルの実行に問題があります。私のファイル構造は次のようになっています:enter image description hereフラスコチュートリアルトラブルシューティング:ModuleNotFoundError: 'app'という名前のモジュールがありません

python3と一緒にフラスコ/ binにある 'run.py'という別のpythonファイルを使用します。私run.pyファイルは単純です:

#!flask/bin/python3 
from app import app 
app.run(debug=True) 

しかしランニング 'のpython3のrun.py' はエラーをスローします:

from flask import Flask 

app = Flask(__name__) 
from app import views 

私は混乱しています:

$ python3 run.py 
Traceback (most recent call last): 
File "run.py", line 2, in <module> 
from app import app 
ModuleNotFoundError: No module named 'app' 

app.pyは次のようになります私がフラスコ/ binフォルダにapp.pyを置いて、上記のディレクトリにあるすべてのフォルダの外に置くなどのディレクトリを使いこなしているので、これを解決する方法については、これらの方法は私のために働いていません。

+0

を役に立てば幸い.app import app' – Suever

答えて

1

run.pyはbinフォルダ内のappを見ることができないため、アプリケーションをインポートできません。pythonの場合、すべてのpythonファイルはモジュールとして扱われ、 .pyファイルのフォルダはパッケージとして扱われるので、run.pyはappパッケージの検索を開始しますが、appモジュールのインポートはbinディレクトリ内を検索します。モジュールとパッケージを完全に理解するには、Python documentationを読んでください。今、あなたはこのように見えるためにあなたのアプリケーションディレクトリを再編成することがありますについて:

dir app 
    file app.py 
dir flask 
file run.py 

そのrun.pyとアプリのディレクトリを確保することにより、ディレクトリrun.pyで同じレベルにある今、アプリからインポートすることができるようになります。

は、私はそれがアプリから `んあなたはそこに` __init __。py`ファイルを置くことによってモジュールにapp` `回すとする必要があります` app`フォルダの外にある場合はそれが

+0

本当にありがとうございました。これはうまくいきました。ルートフォルダに入れて説明したチュートリアルが分かりました。私は混乱していました。私は今までshebangのコンセプトを理解しておらず、shebangがhahaを指示したところに置いてみました –

+0

私は[私のブログ](http:// www。 closinbrace.com)あなたはそれを調べることができた私はそこにいくつかのものを説明した –

関連する問題