網(wǎng)絡(luò)推廣網(wǎng)站建設(shè)有限公司收錄是什么意思
大家好,這里是程序員晚楓。
今天給大家推薦一個快速生成requirements.txt
的小工具:pipreqs
。
什么是requirements.txt?
我們在開發(fā)Python項目的時候,需要用到requirements.txt
來管理項目中使用的第三方庫。
當(dāng)我們把項目部署到一個沒有第三方庫的新環(huán)境,我們可以通過pip install -r requirements.txt
來重新下載這些第三方庫。
例如下面這個就是python-office
的requirements.txt
內(nèi)容。
alive_progress==3.1.5
auto_mix_prep==0.2.0
Faker==25.2.0
moviepy==1.0.3
numpy==1.26.4
openpyxl==3.1.2
pandas==2.2.2
pdf2image==1.17.0
Pillow==10.3.0
pocode==0.0.3
poemail==0.0.3
pypandoc==1.13
PyPDF2==3.0.1
PyQt5==5.15.10
pytest==8.2.1
pywifi==1.1.12
pywin32==306
qt_material==2.14
reportlab==4.2.0
Requests==2.32.2
search4file==0.1.15
setuptools==69.0.2
tqdm==4.66.4
typer==0.12.3
wftools==0.0.9
xlrd==1.2.0
xlwt==1.3.0
如何生成requirements.txt?
常見的工具有:pipreqs
和 pip freeze
兩種,它們在Python項目中用于管理依賴關(guān)系,但它們的用途和工作方式有所不同。
簡單來說:
- 生成當(dāng)前項目的requirements.txt,用pipreqs
- 生成當(dāng)前環(huán)境的requirements.txt,用pip freeze
以下是它們的詳細比較:
pipreqs
- 用途:
pipreqs
是一個從項目代碼中自動生成requirements.txt
文件的工具。它分析項目中的Python文件,找出導(dǎo)入的模塊,并生成一個包含這些模塊及其對應(yīng)版本的列表。 - 工作方式:
pipreqs
通過掃描項目目錄中的Python文件,識別出項目實際使用的庫,然后生成一個requirements.txt
文件,這個文件只包含項目代碼中用到的庫。 - 優(yōu)點:
- 只包含項目實際使用的庫,避免包含不必要的依賴。
- 可以忽略某些目錄或文件,提高生成依賴列表的精確度。
- 支持Jupyter Notebook,能夠識別Notebook中的依賴。
- 缺點:
- 需要手動運行,不會自動更新
requirements.txt
文件。 - 可能不會識別出所有間接依賴。
- 需要手動運行,不會自動更新
pip freeze
- 用途:
pip freeze
是一個列出當(dāng)前環(huán)境中所有已安裝的Python包及其確切版本的命令。 - 工作方式:
pip freeze
會列出當(dāng)前虛擬環(huán)境中安裝的所有包,包括那些不是由項目直接依賴的包(例如,某些包的依賴)。 - 優(yōu)點:
- 快速列出當(dāng)前環(huán)境中所有已安裝的包。
- 可以用于確保在不同環(huán)境中重現(xiàn)相同的環(huán)境配置。
- 缺點:
- 包含所有環(huán)境包,可能會包含項目不需要的依賴。
- 不能識別項目中未使用的包。
總結(jié)
- 項目依賴管理:如果你需要一個精確的項目依賴列表,只包含項目實際使用的庫,
pipreqs
是更好的選擇。 - 環(huán)境復(fù)制:如果你需要復(fù)制整個Python環(huán)境,包括所有包及其版本,
pip freeze
是更合適的工具。 - 自動化與手動:
pipreqs
需要手動運行以生成依賴列表,而pip freeze
只需在環(huán)境中運行即可列出所有包。
總的來說,pipreqs
更適合用于項目開發(fā)階段,生成精確的依賴列表,而 pip freeze
更適合用于環(huán)境管理,確保環(huán)境的一致性。
大家在閱讀過程中有任何問題,或者覺得有收獲的話,歡迎點贊、評論和收藏。