在阅读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
La question de savoir si cette question est nécessaire dépend en fait de la nature du projet. De manière générale, il y aura les deux, et il est préférable d'avoir les deux.
setup.py
Ce fichier est utilisé pour gérer les modules. Vous pouvez empaqueter votre projet en tant que module et le télécharger sur pypi. Vous pouvez également placer le projet en tant que module dans le répertoire du module de chargement du système Python.requiremens.txt
Ce fichier répertorie les dépendances hors projet auxquelles votre projet fait référence. À part cela, il n'a aucune autre fonction.On voit donc qu'il n'y a pas de conflit entre ces deux projets, et qu'il y a un grand besoin de coexister.
Ceci est essentiel si votre projet doit être enregistré en tant que module système ou peut être installé en tant que commande système
setup.py
Si votre projet peut être exécuté directement, alors
requirements.txt
est également essentiel.Si vous avez besoin des deux fonctions, alors les deux fichiers ne peuvent pas manquer.
Avez-vous besoin des deux fonctions ?
Il doit y en avoir une, et il y en a bien d'autres. Par exemple, Flask prend en charge deux méthodes :
Démarrer en tant que commande système. Un nouveau package Click a été ajouté dans Flask 0.11.1, ce qui vous permet de l'exécuter en tant que commande après l'installation
est exécuté directement. La méthode de démarrage traditionnelle
Flask
est généralementapp.run()
oupython manage.py runserver
J'espère que cela sera utile à celui qui pose la question.
Supplément :
En fait,
setup.py
aura également une liste de dépendances, il n'y a donc pas lieu de s'inquiéter d'être associé àrequirements.txt
lors de l'installation, car il n'est pas nécessaire de l'associer, l'auteur l'a déjà écrit ensetup.py
.J'ai vu que le fichier Requirements.txt est indispensable. Il déclare les bibliothèques tierces introduites par votre projet. En tant qu'application Web Flask, setup.py ne semble pas avoir de sens. . .
setup.py
consiste à installer des modules écrits par vous-même, généralement en exécutantsudo python setup.py install
,requirements.txt
indique les modules dont dépend ce module. Généralement, exécutezsudo pip install -r requirements.txt
pour installer les modules dépendants.