0

私はPythonプロジェクトを持っており、それをライブラリ部分とバイナリ部分の2つの部分に分割しました。

組織上の理由から、次のような階層が必要でした。

project/
    lib/
        __init__.py
        module1.py
        module2.py
    bin/
        binary1.py # contains: import module1
        binary2.py # contains: import module2
    doc/
    ...

もちろん、問題は、binary {1,2} .pyでの単純なインポートが、少なくともコーディング段階(インストール前)では機能しないことです。

助言がありますか?コーディング中にコードをどのようにテストしますか?

4

1 に答える 1

0

私はどこでも絶対インポートを使用します。

project/
    __init__.py
    lib/
        __init__.py
        module1.py
        module2.py
    bin/
        __init__.py
        binary1.py # contains: import module1
        binary2.py # contains: import module2
    doc/
    ...

PYTHONPATHを上のディレクトリに設定すると、次のようにprojectインポートできます。module1binary1.py

from project.lib import module1

これらの__init__.pyファイルを使用すると、インポートが簡単になります。たとえば、各ファイルにクラスがあります。通常、次のようにクラスをインポートする必要があります(ファイル名を含む):

from project.lib.module1 import Module1

ただし、lib/__init__.pyこの行を含めるように編集する場合:

from project.lib.module1 import Module1

の名前空間を使用して、 :から直接libインポートできます。Module1lib

from project.lib import Module1
于 2013-01-30T14:30:53.017 に答える