0

私は、いくつかの異なるデータベースに接続する python アプリに取り組んでいます。プロジェクト内のさまざまなパッケージでデータベース機能を使用できるようにしたいと考えています。各パッケージにデータベース ロジックを作成する代わりに、使用できる "グローバル" パッケージを作成するにはどうすればよいですか? これが私が使用することを考えている構造の例です:

main.py
    package1/
        __init__.py
        stuff1.py
        stuff2.py
    package2/
        __init__.py
        moar1.py
        moar2.py
    database/
        __init__.py
        dbfunctions.py

main.py から呼び出すことなく、stuff ファイルと moar ファイルのデータベース関数を使用できるようにしたいと考えています。データベース ロジック、SQL などをパッケージに記述し、main.py からの呼び出しに基づいて個別に実行できるようにしたいと考えています。

質問: データベース関数を package1 と package2 にインポートするにはどうすればよいですか? 兄弟ディレクトリからデータベース項目をインポートしたいと思います。

(また、私は PHP の使用に慣れており、Python を使い始めたばかりなので、完全に間違った道を進んでいる場合は、まだアプリの作成を開始していません。さまざまな構造の提案を完全に受け入れています。)

4

1 に答える 1

0

兄弟ディレクトリからインポートするには、兄弟パッケージが親パッケージの一部である必要があります。

レイアウトを次のように変更します。

wholeproject/
    __init__.py
    main.py
    package1/
        __init__.py
        stuff1.py
        stuff2.py
    package2/
        __init__.py
        moar1.py
        moar2.py
    database/
        __init__.py
        dbfunctions.py

次に、main.py で、次のようにものと moar をインポートできます。

from wholeproject.package1 import stuff1
from wholeproject.package2 import moar1

また、stuff1 では、次のような dbfunctions を取得できます。

from wholeproject.database import dbfunctions

または、必要に応じて個々の関数を取得することもできます...しかし、これで始めることができます。あなたはほとんどそれを持っていました!

于 2013-05-05T18:40:02.770 に答える