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

在阅读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 的系統載入模組目錄下。

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 裡面也會有依賴的列表,所以,在 setup 的時候無需擔心會和

關聯,因為不需要關聯這個,作者已經在 🎜 中寫好了。 🎜
小葫芦

在我看了requirements.txt是必須的這個聲明了你的專案引入哪些第三方函式庫。作為一個flask web應用setup.py好像沒有什麼意義。 。 。

Ty80

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

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板