Python項目生成requirements

詳細版本見個人博客:Python項目生成requirements


一起開發項目的時候總是要搭建環境和部署環境的,這個時候必須得有個Python第三方包的list,一般都叫做requirements.txt。本文介紹了兩種生成requirements.txt的方法。

一、使用pip freeze

pip freeze > requirements.txt

這種方式配合virtualenv纔好使,否則把整個環境中的包都列出來了。

下面是在虛擬環境中生成的requirements.txt文件內容:

cat requirements.txt
certifi==2019.3.9
chardet==3.0.4
fake-useragent==0.1.11
idna==2.7
lxml==4.2.5
numpy==1.16.3
pandas==0.22.0
python-dateutil==2.8.0
pytz==2019.1
requests==2.20.0
six==1.12.0
urllib3==1.24.3

二、使用 pipreqs

這個工具通過對項目目錄的掃描,自動發現使用了那些類庫,自動生成依賴清單。此工具是基於imports,即你的項目引入了哪個包,此工具纔會把引入的包寫到requirements.txt中,要比pip freeze乾淨。這個工具的缺點是可能會有些偏差,需要檢查並自己調整下。

pipreqs ./

有可能會報如下錯誤:

Traceback (most recent call last):
  File "c:\program files\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python36\Scripts\pipreqs.exe\__main__.py", line 9, in <module>
  File "c:\program files\python36\lib\site-packages\pipreqs\pipreqs.py", line 396, in main
    init(args)
  File "c:\program files\python36\lib\site-packages\pipreqs\pipreqs.py", line 341, in init
    extra_ignore_dirs=extra_ignore_dirs)
  File "c:\program files\python36\lib\site-packages\pipreqs\pipreqs.py", line 75, in get_all_imports
    contents = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 12: illegal multibyte sequence

這是由於編碼問題所導致的,加上encoding參數即可,如下:

pipreqs ./ --encoding=utf-8

下面我看下生成的requirements.txt文件內容:

cat requirements.txt
requests==2.20.0
fake_useragent==0.1.11
lxml==4.2.5
pandas==0.22.0

詳細版本見個人博客:Python項目生成requirements

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章