Java=およびMavenとPythonの本当の初心者)の方が経験が豊富なので、何が可能で何ができないかについては、私には本当にわかりません。
Javaでは、Mavenを使用して、ファイルの依存関係バージョンを管理できます(a pom parent /アグリゲーターモジュール)。次に、サブのpom.xml
で再宣言します-pomの親によって管理されているバージョンを省略しながら、必要な依存関係をモジュール化します。このようにして、サブモジュールを物理的に個別に配布(例:マシン内のすべてのモジュール)でき、すべてのモジュールは必要な依存関係、つまり独自のpomファイルで定義されているライブラリのみをパッケージ化します。
ここでPythonに戻ります。現在、setup.py
ファイルを使用しています。このファイルは、私の理解ではルートモジュールにあるはずです。ただし、モジュール全体を1つのライブラリとしてパッケージ化します。
モジュールとその依存関係をより適切に管理し、すべての(選択された)モジュールを、独自の必要なライブラリーを持つ独立したパッケージとして個別にデプロイできる方法はありますか?個別にパッケージ化するモジュールを選択できるようにしたいのですが、__init__.py
を含むすべてのフォルダを個別にパッケージ化したくありません。
現在、私は依存関係を管理するためにPipenvを使用していますが、上記で説明した設計を満たさない場合は、それを削除する準備ができています。
ありがとうございました
あなたが望んでいることを正確に実行するものは何もありません(少なくとも私が知る限り)。 pythonでは、プロジェクトまたはライブラリの依存関係を管理する方法は、requirements.txtと仮想環境を使用しています。どちらもプロジェクト全体の依存関係を管理します。
個々のモジュールをプロジェクトから分離するには、それらを個別のプロジェクトとして扱い、すべてのプロジェクトで必要なことを行います。 requirements.txtを作成するか、setup.pyを使用してインストールする必要がある場合は、その中に配置します。
したがって、「サブライブラリ」ごとに「分離」して、異なるrequirements.txtまたはsetup.pyを作成します。
フォルダーをスキャンして要件ファイルを自動的に生成するpipreqs(およびおそらく他のライブラリ)と呼ばれるこのライブラリがあります。ライブラリをインストールした直後に、要件ファイルを手動で作成することをお勧めします。
あなたのpythonコードをパッケージ化するために探しているなら、あなたは poetry を見ることができますが、mavenのようなマルチプロジェクトのビルドは達成できません。