一起開發(fā)項(xiàng)目的時(shí)候總是要搭建環(huán)境和部署環(huán)境的,這個(gè)時(shí)候必須得有個(gè)python第三方包的list,一般都叫做requirements.txt。 如果一個(gè)項(xiàng)目使用時(shí)virtualenv環(huán)境,還好辦 pip freeze 就可以解決,但是如果一個(gè)項(xiàng)目的依賴list沒有維護(hù),而且又是環(huán)境混用,那就不好整理的呀,不過,這里安利一個(gè)工具 pipreqs,可以自動(dòng)根據(jù)源碼生成 requirements.txt .
使用pip freeze
$ pip freeze > requirements.txt
這種方式配合virtualenv 才好使,否則把整個(gè)環(huán)境中的包都列出來了。
這個(gè)工具的好處是可以通過對項(xiàng)目目錄的掃描,自動(dòng)發(fā)現(xiàn)使用了那些類庫,自動(dòng)生成依賴清單。
缺點(diǎn)是可能會有些偏差,需要檢查并自己調(diào)整下。
# pip install pipreqs
# 使用方式也比較簡單
pipreqs ./
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Successfully saved requirements file in ./requirements.txt
cat requirements.txt
Django == 1.6
django_redis == 4.3.0
redis == 2.10.5
django_redis_cache == 1.6.5
simplejson == 3.8.2
Twisted == 16.0.0
pycrypto == 2.6.1
ConcurrentLogHandler == 0.9.1
cx_Oracle == 5.2.1
ujson == 1.35
有時(shí)候結(jié)果可能會有些偏差,這里并沒有用Oracle的相關(guān)驅(qū)動(dòng),根據(jù)的需要修改 requirements.txt 就好了。
|