准备一个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 pipreqs
导出依赖
$ 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
参考
Python 依赖库管理哪家强?pip、pipreqs、pigar、pip-tools、pipdeptree 任君挑选