准备一个main.py文件
# -*- coding: utf-8 -*- import mysql.connector import flask from bs4 import BeautifulSoup
一、pip
搜索全局环境依赖库
导出依赖
$ pip freeze > requirements.txt mysql-connector-python==8.0.17 Flask==1.1.1 beautifulsoup4==4.8.1 Django==2.2.5 ... # 省略剩下的依赖库
依赖的全称是对的
二、pipreqs
基于目录的方式搜索依赖库,搜索的依据是脚本中所 import 的内容
https://github.com/bndr/pipreqs
安装
pip install pipreq
导出依赖
$ pipreqs --force Flask==1.1.1 beautifulsoup4==4.8.1 mysql_connector_repackaged==0.3.1
库 mysql-connector-python==8.0.17 被导出成了 mysql_connector_repackaged==0.3.1
三、pigar
根据项目路径来生成依赖文件, 而且会列出依赖库在文件中哪些位置使用到了
https://github.com/damnever/pigar
安装
pip install pigar
查询真实来源
$ pigar -s bs4 ================================== PACKAGE | VERSION | WHERE ---------------+---------+------ beautifulsoup4 | 4.8.1 | local ==================================
导出依赖
$ pigar # Requirements automatically generated by pigar. # https://github.com/damnever/pigar # main.py: 4 Flask == 1.1.1 # main.py: 5 beautifulsoup4 == 4.8.1 # main.py: 3 mysql_connector_python == 8.0.17
四、pip-tools
精准地控制项目的依赖库
https://github.com/jazzband/pip-tools
安装
pip install pip-tools
新建 requirements.ini
Flask
生成依赖文件
$ pip-compile requirements.ini # # This file is autogenerated by pip-compile # To update, run: # # pip-compile requirements.ini # --index-url https://pypi.tuna.tsinghua.edu.cn/simple flask==1.1.1
同步依赖文件
$ pip-sync requirements.txt # 注意,不在requirements.txt 文件中的库会被卸载
五、pipdeptree
生成依赖树
https://github.com/naiquevin/pipdeptree
安装
pip install pipdeptree
生成依赖树文件
$ pipdeptree --freeze > requirements.txt Flask==1.1.1 Click==7.0 itsdangerous Jinja2 Werkzeug setuptools==41.0.1 wheel==0.33.4