Python項(xiàng)目如何生成requirements.txt文件

Pyhon項(xiàng)目中勺疼,一般都會(huì)有一個(gè) requirements.txt 文件,這個(gè)文件主要是用于記錄當(dāng)前項(xiàng)目下的所有依賴包及其精確的版本號(hào)捏鱼,以方便在一個(gè)新環(huán)境下更快的進(jìn)行部署恢口。

使用 pip freeze 生成

一般情況,我們可以直接使用Python下的 pip 包管理工具穷躁,來生成 requirements.txt 文件耕肩,命令如下:

pip freeze > D:\pycharm\requirements.txt

其中,D:\pycharm\requirements.txt 為生成的 requirements.txt 文件的具體路徑问潭。通過這個(gè) pip freeze 方式生成時(shí)猿诸,會(huì)把整個(gè)Python環(huán)境下的所有包都列出生成,比較適用于Python項(xiàng)目為虛擬環(huán)境的情況狡忙。

使用 pipreqs 生成

我們還可以通過第三方庫 pipreqs 來生成 requirements.txt 文件梳虽,這個(gè)方式有一個(gè)好處,那就是它可以只生成我們當(dāng)前Python項(xiàng)目中所用到的依賴包及其版本號(hào)灾茁,而不是像 pip freeze 方式一樣把所有包全部列出生成窜觉。

  • 安裝pipreqs

可以直接通過 pip 來安裝 pipreqs谷炸,安裝命令:

pip install pipreqs

安裝后通過 pip show pipreqs 查看,我這里安裝的版本是 0.4.10禀挫。

D:\>pip3 show pipreqs
Name: pipreqs
Version: 0.4.10
Summary: Pip requirements.txt generator based on imports in project
Home-page: https://github.com/bndr/pipreqs
Author: Vadim Kravcenko
Author-email: vadim.kravcenko@gmail.com
License: Apache License
Location: d:\python\installation\lib\site-packages
Requires: yarg, docopt
Required-by:
  • 使用pipreqs

pipreqs 使用起來也很容易旬陡,命令使用方式為:pipreqs 當(dāng)前Python項(xiàng)目的根目錄

D:\>pipreqs D:\pycharm\Code\flaskDemo
Traceback (most recent call last):
  File "d:\python\installation\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\installation\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Python\installation\Scripts\pipreqs.exe\__main__.py", line 9, in <module>
  File "d:\python\installation\lib\site-packages\pipreqs\pipreqs.py", line 470, in main
    init(args)
  File "d:\python\installation\lib\site-packages\pipreqs\pipreqs.py", line 409, in init
    follow_links=follow_links)
  File "d:\python\installation\lib\site-packages\pipreqs\pipreqs.py", line 122, in get_all_imports
    contents = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x84 in position 100: illegal multibyte sequence

在執(zhí)行時(shí)语婴,可能會(huì)出現(xiàn)上面提示編碼方式不對(duì)的情況描孟,為解決這個(gè)問題,我們可以在執(zhí)行命令中指定編碼方式為 utf-8 砰左,如下:

D:\>pipreqs D:\pycharm\Code\flaskDemo --encoding=utf8
INFO: Successfully saved requirements file in D:\pycharm\Code\flaskDemo\requirements.txt

如果我們Python項(xiàng)目的根目錄中已存在 requirements.txt 匿醒,那么使用上面命令就會(huì)出現(xiàn)警告:

D:\>pipreqs D:\pycharm\Code\flaskDemo --encoding=utf-8
WARNING: Requirements.txt already exists, use --force to overwrite it

警告信息中的提示,告訴我們可以使用參數(shù) --force 來覆蓋重新生成 requirements.txt 缠导,如下:

pipreqs D:\pycharm\Code\flaskDemo --encoding=utf-8 --force

執(zhí)行requirement.txt

生成 requirement.txt 后廉羔,我們查看其發(fā)現(xiàn)是這樣的格式:

PyMySQL==0.9.3
Flask==1.0.3
redis==3.4.1

那么,對(duì)于 requirement.txt 中列出的第三方庫僻造,應(yīng)該如何去執(zhí)行并安裝呢蜜另?安裝方式很簡(jiǎn)單,我們通過 pip 工具嫡意,執(zhí)行命令:pip install -r requirements.txt 举瑰,該命令會(huì)把 requirements.txt 文件中列出的庫依次進(jìn)行安裝,最后等待安裝完成即可蔬螟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末此迅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子旧巾,更是在濱河造成了極大的恐慌耸序,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲁猩,死亡現(xiàn)場(chǎng)離奇詭異坎怪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)廓握,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門搅窿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隙券,你說我怎么就攤上這事男应。” “怎么了娱仔?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵沐飘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)耐朴,這世上最難降的妖魔是什么借卧? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮筛峭,結(jié)果婚禮上铐刘,老公的妹妹穿的比我還像新娘。我一直安慰自己蜒滩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布奶稠。 她就那樣靜靜地躺著俯艰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锌订。 梳的紋絲不亂的頭發(fā)上竹握,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音辆飘,去河邊找鬼啦辐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜈项,可吹牛的內(nèi)容都是我干的芹关。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼紧卒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼侥衬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起跑芳,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤轴总,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后博个,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怀樟,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年盆佣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了往堡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡共耍,死狀恐怖投蝉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情征堪,我是刑警寧澤瘩缆,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站佃蚜,受9級(jí)特大地震影響庸娱,放射性物質(zhì)發(fā)生泄漏着绊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一熟尉、第九天 我趴在偏房一處隱蔽的房頂上張望归露。 院中可真熱鬧,春花似錦斤儿、人聲如沸剧包。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疆液。三九已至,卻和暖如春陕贮,著一層夾襖步出監(jiān)牢的瞬間堕油,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工肮之, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掉缺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓戈擒,卻偏偏與公主長(zhǎng)得像眶明,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筐高,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345