2016-07-03 8 views
2

は、この例を考えてみましょう:フォルダ内のpythonファイルと同じディレクトリにあるファイルの両方からインポートするにはどうすればいいですか?

/project 
| main.py 
| database.py 
L /database 
    L users.py 

database.pyとusers.py両方の変数があります。 users.pyは、プロジェクト内のデータベースというフォルダにあります。 main.pyからdatabase.pyの変数とusers.py変数の両方をインポートできますか?

答えて

1

database dirから素材をインポートする場合は、空の場合でも__init__.pyファイルをその中に入れる必要があります。 databaseは、「パッケージ」と呼ばれます。

import databaseを行うことdatabase.py__init__.pyではなくインポートされますので、あなたは、しかしdatabase.pydatabaseディレクトリを持つことはできません。したがって、のdatabase.pyからすべてを移動することができます。

1

あなたのユースケースについてもっと明白なことができますか?

変数は通常のimportステートメントでインポートできます。

from database import a, b 
from lib.users import c, d 

if __name__ == '__main__': 
    print(a, b) 
    print(c, d) 

あなたのサブフォルダ内__init__.pyという名前のファイルが存在しなければならないことに注意してください、例えばlib、インポートが機能します。

ただし、同じ名前(database)のフォルダとファイルからインポートすると、競合が発生します。 インポートのファイルの名前を変更して、あいまいでないようにする必要があります。

関連する問題