在阅读Kenneth Retiz写的ptyhon最佳实践文章中关于如何构建一个好的目录结构的时候,发现有这样一个问题,可以同时存在setup.py
文件以及requirements.txt
文件,想请问一下这两者之间有什么区别与联系。
例如有下面这样的一个flask
应用目录结构,setup.py与requirements.txt两个文件同时存在是否有必要?
├── app
├── docs
├── test
├── config.py
├── manage.py
├── requirements.txt
├── setup.py
├── Makefile
├── README.md
└── LICENSE
この質問が実際に必要かどうかは、プロジェクトの性質によって決まります。一般的には両方あり、両方あるのが最善です。
setup.py
このファイルはモジュールを管理するために使用されます。プロジェクトをモジュールとしてパッケージ化して pypi にアップロードすることもできます。また、プロジェクトをモジュールとして Python システムのロード モジュール ディレクトリに置くこともできます。requiremens.txt
このファイルには、プロジェクトが参照する非プロジェクト依存関係がリストされます。それ以外には、他の機能はありません。したがって、これら 2 つのプロジェクトの間には矛盾はなく、共存する必要性が非常に高いことがわかります。
これは、プロジェクトをシステム モジュールとして保存する必要がある場合、またはシステム コマンドとしてインストールできる場合に不可欠です
setup.py
プロジェクトを直接実行できる場合は、
requirements.txt
も必須です。両方の関数が必要な場合は、両方のファイルが不足することはありません。
両方の機能が必要ですか?
必ず 1 つありますが、他にも多数あります。たとえば、Flask は 2 つのメソッドをサポートしています。
システム コマンドとして開始 新しい Click パッケージが Flask 0.11.1 に追加され、セットアップ後にコマンドとして実行できるようになります。
は直接実行されます。従来の
Flask
起動方法は通常、app.run()
またはpython manage.py runserver
これが質問者にとって役立つことを願っています。
補足:
実際、
setup.py
には依存関係のリストもあるので、セットアップ中にrequirements.txt
に関連付けられるかどうかを心配する必要はありません。これを関連付ける必要はなく、作成者がすでに作成しているためです。setup.py
で。requirements.txt は必須であることが分かりました。プロジェクトにどのサードパーティ ライブラリを導入するかを宣言します。 Flask Web アプリケーションとして、setup.py は意味がないようです。 。 。
を実行します。setup.py
は自分で作成したモジュールをインストールします。通常はsudo python setup.py install
、requirements.txt
は、このモジュールが依存するモジュールを示します。通常、依存するモジュールをインストールするには、sudo pip install -r requirements.txt
を実行します。