python怎么创建txt文件啊_搞定Python项目依赖:requirements.txt文件的创建和使用
Python的強大在于它擁有數量眾多的第三方庫協助開發,在編寫Python項目時,我們經常會使用很多第三方模塊。由于不同設備和系統的差異性,導致我們很難分散地控制項目依賴(頭鐵的同學請繞道),于是requirements.txt(后續文章中可能簡稱為requirements)就出現了。requirements.txt記錄了當前環境中所使用的包和對應版本,能夠配合Python的包管理工具快速地在其他系統中部署相同的環境,保證開發和部署的效率。
接下來我們介紹幾種常用的生成和使用requirements.txt文件的方法:
一 pip freeze
pip 是一個Python包管理工具,主要是用于安裝 PyPI 上的軟件包,可以替代 easy_install 工具。
安裝pip有兩種方式,一種是源碼安裝(在Python2編譯安裝的時候沒有安裝pip,需要在官網下載安裝,而Python3在安裝的時候就默認安裝了pip),還有一種方式是使用Linux系統的包管理軟件,因為Linux系統一般都是有自帶Python,如果只需要系統自帶的Python,直接從系統的包管理器安裝可以了。方法是“yum install python-pip”或“apt-get install python-pip”。
1. pip freeze生成requirements.txt
pip freeze > requirements.txt #這里的文件名可以自定義
1
pipfreeze>requirements.txt#這里的文件名可以自定義
2. pip使用requirements安裝依賴
pip install -r requirements.txt
1
pipinstall-rrequirements.txt
二 pipreqs
上面介紹的pip管理依賴包的方法是最常用的做法,但是如果有使用過的同學,肯定知道這種方法也有弊端,就是pip創建項目依賴包requirements文件時會將整個環境的包都列出來(虛擬環境下不會包含pip和setuptools),往往需要我們手動刪除很多當前項目不需要的依賴。
通常我們生成項目requirements.txt文件是希望得到當前項目的依賴情況,這時候推薦使用pipreqs。這個工具的優勢在于它是通過對項目目錄掃描自動發現依賴的類庫,生產依賴清單,但是可能會存在一些偏差,需要手動調整。
pipreqs安裝方法很簡單,pip install pipreqs 即可。
pipreqs ./ #進入項目根目錄運行即可
1
pipreqs./#進入項目根目錄運行即可
這條命令可能會發生錯誤:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 186: illegal multibyte sequence
1
UnicodeDecodeError:'gbk'codeccan'tdecodebyte0xa6inposition186:illegalmultibytesequence
解決方法:修改pipreqs.py文件中75行,將encoding修改為utf-8。或者運行命令的時候指定編碼格式。
pipreqs ./ --encoding=utf8
1
pipreqs./--encoding=utf8
其他pipreqs的詳細用法可以查找文檔或參見命令幫助提示,使用生成的依賴與pip一致,需要“ pip install -r requirements.txt ”。
三 pip-compile
這種方法也比較適合精細化控制,需要自行創建requirements.in文件(這工具真的是傲嬌,連個文件也不給生成)。創建文件后,需要手動寫入依賴包的名稱,如:
Django
requests
celery
1
2
3
Django
requests
celery
然后運行命令:
pip-compile requirements.in
1
pip-compilerequirements.in
此時pip-compile會根據當前環境中依賴包的版本填寫配置文件,此時查看配置文件會發現生成的版本信息。
#
# This file is autogenerated by pip-compile
# Make changes in requirements.in, then run this to update:
#
# pip-compile requirements.in
#
Django==1.11.7
requests==2.19.1
celery==4.2.1
1
2
3
4
5
6
7
8
9
10
#
# This file is autogenerated by pip-compile
# Make changes in requirements.in, then run this to update:
#
# pip-compile requirements.in
#
Django==1.11.7
requests==2.19.1
celery==4.2.1
四 conda
conda 是針對于 Python 的環境和包管理工具( Conda是一個通用的包管理器,當初設計來管理任何語言的包,這么表述是因為被用來管理Python比較多),發布于2012年,在Python數據分析領域是與Numpy和Scipy一樣受歡迎的工具。可以使用 minconda 或 anaconda 進行安裝,前者是簡化版本,只包含 conda 和其依賴。 Anaconda發行版會預裝很多pydata生態圈里的軟件,而Miniconda是最小的conda安裝環境, 一個干凈的conda環境。
conda 有 Python3.x 和 Python2.x 系列兩個版本,其實都沒有關系,因為你在使用 conda 進行創建環境時,可以指定 Python 的版本。一般來說 conda 倉庫的軟件沒有 PyPI 更新快和全。所以推薦 conda 只用來創建虛擬環境(后面介紹),包的安裝管理仍然使用 pip。但在 windows 下由于依賴不好處理,所以在使用 pip 失敗時可以查詢是否有編譯好的 conda 包。
和pip相比,pip可以允許你在任何環境中安裝Python包,而conda允許你在conda環境中安裝任何語言包(包括c語言或者Python)。可以在virtualenv環境下安裝conda,但是最好用conda自己的環境工具,這樣會和pip有更好的兼容性。總結來看,pip 和 conda 是為不同目的存在的,我們應該更加關注怎么同時用好這兩個工具,而不是只用一個。
conda批量導出包含環境中所有組件的requirements.txt文件:
conda list -e > requirements.txt
1
condalist-e>requirements.txt
批量安裝requirements.txt文件中的組件依賴:
conda install --yes --file requirements.txt
1
condainstall--yes--filerequirements.txt
五 總結
喜歡 (0)or分享 (0)
總結
以上是生活随笔為你收集整理的python怎么创建txt文件啊_搞定Python项目依赖:requirements.txt文件的创建和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机auxr寄存器_MCS-51单
- 下一篇: 特殊功能寄存器SFR