python - setup.py 与 requirements.txt 区别
迷茫
迷茫 2017-04-18 09:33:40
0
3
661

在阅读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
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
伊谢尔伦

这个问题其实有没有必要时看项目的性质的,一般来说两个都会有,也最好都有。

setup.py 这个文件是用来管理模块的,你可以将你的项目打包为模块上传到 pypi 中,也同样能将项目作为模块放入python 的系统加载模块目录下。setup.py 这个文件是用来管理模块的,你可以将你的项目打包为模块上传到 pypi 中,也同样能将项目作为模块放入python 的系统加载模块目录下。

requiremens.txt 这个文件是列举你这个项目引用了哪些非本项目的依赖的,除此之外,没有其他作用。

因此,可以看出这两个项目其实并没有冲突关系,而且有很大共存的必要。

  • 假如你的项目需要保存为系统模块,或者可安装为系统命令的 setup.py 就必不可少了

  • 假如你的项目是可以直接运行的,那么 requirements.txt 也是必不可少。

  • 如果你两种功能都需要,那么就两个文件都不能少。

有这两种功能都需要的么?

必须有啊,而且还很多,例如 Flask,他就支持两种方式:

  • 以系统命令的方式启动,在 Flask 0.11.1 中新加入了一个 Click 包,他可以让你 setup 之后以命令的方式运行

  • 直接运行,传统的 Flask 启动方式一般就是 app.run() 或者 python manage.py runserver

希望对题主有所帮助。


补充:

其实,setup.py 里面也会有依赖的列表,所以,在 setup 的时候无需担心会和 requirements.txt 关联,因为不需要关联这个,作者已经在 setup.py

requiremens.txt 这个文件是列举你这个项目引用了哪些非本项目的依赖的,除此之外,没有其他作用。#🎜🎜# #🎜🎜#因此,可以看出这两个项目其实并没有冲突关系,而且有很大共存的必要。#🎜🎜#
  • #🎜🎜#假如你的项目需要保存为系统模块,或者可安装为系统命令的 setup.py 就必不可少了#🎜🎜#
  • #🎜🎜#假如你的项目是可以直接运行的,那么 requirements.txt 也是必不可少。#🎜🎜#
  • #🎜🎜#如果你两种功能都需要,那么就两个文件都不能少。#🎜🎜#
#🎜🎜#有这两种功能都需要的么?#🎜🎜# #🎜🎜#必须有啊,而且还很多,例如 Flask,他就支持两种方式:#🎜🎜#
  • #🎜🎜#以系统命令的方式启动,在 Flask 0.11.1 中新加入了一个 Click 包,他可以让你 setup 之后以命令的方式运行#🎜🎜#
  • #🎜🎜#直接运行,传统的 Flask 启动方式一般就是 app.run() 或者 python manage.py runserver#🎜🎜#
#🎜🎜#希望对题主有所帮助。#🎜🎜#
#🎜🎜#补充:#🎜🎜# #🎜🎜#其实,setup.py 里面也会有依赖的列表,所以,在 setup 的时候无需担心会和 requirements.txt 关联,因为不需要关联这个,作者已经在 setup.py 中写好了。#🎜🎜#
小葫芦

在我看了requirements.txt是必须的这个声明了你的项目引入哪些第三方库。作为一个flask web应用setup.py好像没有什么意义。。。

Ty80

setup.py是安装你自己写的模块,一般依靠执行sudo python setup.py installsetup.py是安装你自己写的模块,一般依靠执行sudo python setup.py install

requirements.txt是指明这个模块所依赖的模块,一般执行sudo pip install -r requirements.txt

requirements.txt是指明这个模块所依赖的模块,一般执行sudo pip install -r requirements.txt来安装依赖模块。🎜
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板