2017-08-16 14 views
2

を動作するようには思えません私は私のフラスコプロジェクトの次のディレクトリ構造を持っている相対輸入が

├── API 
│   ├── __init__.py 
│   ├── controllers.py 
│   ├── models.py 
│   └── test 
│    ├── first_test.py 
│    
├── config.py 
├── requirements.txt 
├── run.py 
└── setup.py 

setup.pyは、次のようになります。

from setuptools import setup 

    setup(
     name='project_name', 
     packages=['API'], 
     include_package_data=True 
    ) 

私はどのように心配です私のmodelsapp (__init__)をテストファイル(first_test.py)にインポートできますか?

だから、これまで私は、ファイルをインポートする方法を見つけ出すことはできません

from project_name.API import app 

gives from project_name.API import app 
E ImportError: No module named project_name.API 

from ..API import app 
from ..API import app 
E ValueError: Attempted relative import in non-package 

from .. import app 
from .. import app 
E ValueError: Attempted relative import in non-package 

を試してみました。また、テストファイルを実行していますpy.test API/test/first_test.py

+0

私は良い方法は、githubのフラスコの骨格のいくつかをダウンロードすることだと思います。私はRealPythonで "Flask-Skeleton"を好む。すべてがそこで働いていて、正しく行う方法を簡単に見つけることができます。 –

答えて

0

解決策の1つは、プロジェクトのルートディレクトリの下にsetup.pyというファイルを作成することです。

その後、この方法では、PIP

pip install --editable . 

を使ってアプリをインストールすることができ、あなたはfirst_test.pyファイルからアプリケーションをインポートすることができます。

from API import app 

もちろん、最後のインポートステートメントは、アプリケーションオブジェクトがどこにあるかによって異なります。

詳細については、flaskreoのminitwitの例を参照してください。

minitwit

希望、それが役立ちます。