会社のブログログイン登録スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。オプションを利用する方法の二種類があります。どちらの方法がより一般的で推奨されているのでしょうか。(投稿順)13setuptoolsのinstall_requiresを使うべきです。requirements.txtとinstall_requiresでは現時点では目的が異なっています。setup.pyに指定したinstall_requiresはパッケージ化の際にメタデータとしてパッケージに同梱されます。requirements.txtを同梱してもそのような動作にはなりません。install_requiresを設定した場合です。メタデータはPythonのPEP345やPEP426でフォーマットと項目が規定されている標準仕様です。requirements.txtはRequirementsフォーマットと呼ばれる形式でインストールするパッケージを列挙します。このフォーマットにはpipのオプション(-fや-r)などを含むことが出来ます。Requirementsフォーマットで記述されたrequirements.txtが将来PEPで標準化される可能性はありますが、現時点では標準化されていません。いえ現時点でも、様々なサービスがrequirements.txtをデファクトスタンダードと認めているためか、テスト環境の構築時などにこのファイルを認識して利用してくれます。パッケージングという観点でいえば、setuptoolsのinstall_requiresを利用するべきでしょう。requirements.txtで作成して)リポジトリに同梱することが推奨されます。個の銅バッジ5標準化されているか否かについてはご指摘のとおりです。dependency)をうまくモデル化できていない問題が指摘されています。23:57問題は、今どう書けば将来に渡って一番はまりが少ないか、ということでしょう。技巧的な「こうすれば動く」は将来負債になります。方法で公開されたパッケージは、全ての依存パッケージのバージョンを固定してしまいます。ドキュメントに定義されたAPIではなく、ある日突然利用者の環境で使えなくなる可能性があります。dependenciesに従って記述する方法に切り替わると思いますが、このPEPはまだdraftで、いつどうなっていくのかは何とも言えないところです。1:11pipはインストーラであって配布パッケージの作成には一切関わりがありません。パッケージング生成については、setuptoolsの範囲であり、wheelやmetadata2.0に関する議論もまだ残っています。今後の変更があることを考えると、小手先のテクニックで回避する方法は控えたほうがよいと思います。requirements.txtとsetup.pyのinstall_requiresのように役割が違うものについて、新しい古いなどという議論はやめてください。8:45今後変更の余地があるのはsetuptoolsも同様です。freezeで自動的に生成したrequirements.txtをそのまま使う前提であれば、手作業でごりごり書いたinstrall_requiresより精度が低いのは当たり前かと思います。現状でバージョンの指定の柔軟性と抽象依存と具象依存の関係を簡単に記述できるという長所を兼ね備えているのはrequirements.txtであり、pipが標準に取り込まれた今、小手先のテクニックと断じるのはどんなものでしょうか。freezeで自動的に生成したrequirements.txtをそのまま使う前提であれば、意図を持って書かれたinstall_requiresと比べて精度が低いことは当たり前と思います。そのまま利用してはいけません。理由は以下のとおりです。テスト自動化やスタイルチェックなど、開発時に使う、そのパッケージが実際には依存していないパッケージまで含まれてしまう可能性がある。