2016-08-25 8 views
1

をフラスコの設定を読み込むことができません:http://exploreflask.com/en/latest/configuration.html#the-simple-caseは、私は、設定ファイルを使用して、ここでドキュメントに従うことをしようとしている親ディレクトリから

私は、彼らが「単純なケース」と呼ぶものを使用したいが、私はconfig.pyをロードしたいです親ディレクトリから取得します。マイプロジェクトツリーは次のようになります。これは

~/Learning/test $ tree 
. 
├── app 
│   └── __init__.py 
└── config.py 

である私のapp/__init__.py:これは

from flask import Flask 

app = Flask(__name__) 
app.config.from_object('config') 

config.py:私は私を実行しようとすると

DEBUG = True 

これは私が取得エラーですプロジェクト:

Traceback (most recent call last): 
    File "app/__init__.py", line 4, in <module> 
    app.config.from_object('config') 
    File "/usr/local/lib/python2.7/dist-packages/flask/config.py", line 163, in from_object 
    obj = import_string(obj) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/utils.py", line 443, in import_string 
    sys.exc_info()[2]) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/utils.py", line 418, in import_string 
    __import__(import_name) 
werkzeug.utils.ImportStringError: import_string() failed for 'config'. Possible reasons are: 

- missing __init__.py in a package; 
- package or module path not included in sys.path; 
- duplicated package or module name taking precedence in sys.path; 
- missing module, class, function or variable; 

Debugged import: 

- 'config' not found. 

Original exception: 

ImportError: No module named config 

config.pyをFlaskのアプリケーションファイルから別のディレクトリに保存します。どのようにフラスコをここに親ディレクトリからconfig.pyロードすることができますか?

答えて

3

エラーメッセージが言うようにので、あなたはそこからそれをロードすることはできません。

- missing __init__.py in a package; 
- package or module path not included in sys.path; 

それはインポート可能であるパッケージの一部ではありません。現在のディレクトリが暗黙的にパスに追加されるように、プロジェクトルートにpythonを実行していたため、ローカルで作業している可能性があります。この動作に頼らないでください。 sys.pathを手動で変更しないでください。

代わりに、フラスコのConfigが設定をロードする別の方法があります環境変数instance folder

app/ 
    __init__.py 
instance/ 
    config.py 

export FLASK_CONFIG="/path/to/config.py" 
app.config.from_envvar('FLASK_CONFIG') 

またはファイル相対からでパスからの

app = Flask(__name__, instance_relative_config=True) 
app.config.from_pyfile('config.py') 
+0

@davisismクラスベースの設定でインスタンスフォルダをどのように使用しますか? 'config.py'にクラス(' BaseConfig'、 'ProductionConfig'、' TestingConfig'など)が含まれていると、 'app.config.from_object(config.BaseConfig)'は動作しません。 'ImportError:config'という名前のモジュールはありません。 – dthor

関連する問題