4章依存関係の管理
Pythonプログラマは、サードパーティ製のライブラリとツールの豊かなエコシステムから恩恵を受けています。一方で、巨人の肩(サードパーティ製ライブラリ)の上に立つということは代償も伴います。一般的に、プロジェクトで依存しているパッケージもまた、多くのパッケージに依存しています。プロジェクトが存続する限り、メンテナは進化するエコシステムに適応するためにバグを修正して、機能を追加して、リリースを続けるでしょう。
長期間にわたってソフトウェアを保守する際に依存関係の管理は大きな課題となります。セキュリティの脆弱性に素早く対応するためだけだとしても、プロジェクトを最新の状態に保つ必要があります。過去のリリースに対するセキュリティアップデートを配布するような、余力のあるオープンソースプロジェクトはほとんどありません。そのため、常に依存関係の更新を続けることになります。この作業を可能な限り摩擦のない、自動化された信頼できるものにできれば、大きな見返りがあります。
Pythonプロジェクトの依存関係とは、その環境にインストールする必要があるサードパーティパッケージです†1。ほとんどの場合、そのパッケージがインポートするモジュールを配布しているため、パッケージへの依存が発生します。また、プロジェクトがパッケージを必要とする(requires)とも言います。
[†1] 広義のプロジェクトの依存関係は、インタプリタ、標準ライブラリ、サードパーティパッケージ、システムライブラリを含む、ユーザがそのコードを実行するために必要なすべてのソフトウェアパッケージから構成される。CondaやAPT、DNF、Homebrewのような配布用パッケージマネージャは、この広義の依存関係の概念をサポートする。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access