本文目录导读:

- 使用 pip 命令查看
- 使用 pip freeze 查看依赖
- 查看 requirements.txt 文件
- 在 Python 代码中查看
- 使用 pipdeptree 查看依赖树
- 综合案例:创建一个依赖报告
- 使用第三方工具:pip-audit
- 实战案例:项目依赖检查
- 快速参考命令
在Python中查看依赖版本有多种方法,以下是常用的几种方式:
使用 pip 命令查看
查看所有已安装包及其版本
pip list
查看特定包的版本
pip show 包名 # 示例:pip show pandas
查看过期包(显示当前版本和最新版本)
pip list --outdated
使用 pip freeze 查看依赖
pip freeze # 输出格式:包名==版本号
查看 requirements.txt 文件
# 如果项目使用了 requirements.txt cat requirements.txt # 或者查看项目的依赖文件 cat requirements.txt | grep 包名
在 Python 代码中查看
# 方法1:使用 import 和 __version__
import pandas
print(pandas.__version__)
# 方法2:使用 pkg_resources
import pkg_resources
print(pkg_resources.get_distribution("pandas").version)
# 方法3:使用 importlib.metadata (Python 3.8+)
from importlib.metadata import version
print(version("pandas"))
使用 pipdeptree 查看依赖树
# 安装工具 pip install pipdeptree # 显示依赖树 pipdeptree # 查看特定包的依赖 pipdeptree -p 包名 # 显示循环依赖 pipdeptree --cycle
综合案例:创建一个依赖报告
#!/usr/bin/env python3
"""
Python 依赖版本检查工具
"""
import subprocess
import sys
from importlib.metadata import distributions, version
def check_pip_packages():
"""使用 pip 命令检查"""
print("=== pip list 输出 ===")
result = subprocess.run([sys.executable, "-m", "pip", "list"],
capture_output=True, text=True)
print(result.stdout)
def check_specific_package(package_name):
"""检查特定包版本"""
try:
ver = version(package_name)
print(f"\n{package_name} 版本: {ver}")
except Exception as e:
print(f"\n{package_name} 未安装: {e}")
def list_all_distributions():
"""列出所有已安装的发行版"""
print("\n=== 所有已安装包 ===")
for dist in distributions():
print(f"{dist.metadata['Name']} - {dist.version}")
def main():
# 检查所有包
check_pip_packages()
# 检查特定包
packages_to_check = ['numpy', 'pandas', 'requests', 'django', 'flask']
for pkg in packages_to_check:
check_specific_package(pkg)
# 列出所有发行版
list_all_distributions()
if __name__ == "__main__":
main()
使用第三方工具:pip-audit
# 安装 pip install pip-audit # 检查依赖安全性和版本 pip-audit # 输出为 JSON 格式 pip-audit --format json
实战案例:项目依赖检查
import json
import subprocess
from pathlib import Path
def analyze_project_dependencies(project_path="."):
"""分析项目依赖"""
# 1. 检查 requirements.txt
req_file = Path(project_path) / "requirements.txt"
if req_file.exists():
print("=== requirements.txt 内容 ===")
with open(req_file) as f:
print(f.read())
# 2. 检查 setup.py 或 pyproject.toml
setup_file = Path(project_path) / "setup.py"
if setup_file.exists():
print("\n=== setup.py 中的依赖 ===")
# 简单的解析
with open(setup_file) as f:
content = f.read()
# 提取 install_requires 部分
if 'install_requires' in content:
start = content.find('install_requires')
print(content[start:start+200])
# 3. 使用 pip 获取环境信息
print("\n=== 当前环境依赖 ===")
subprocess.run([sys.executable, "-m", "pip", "freeze"])
# 运行分析
analyze_project_dependencies()
快速参考命令
| 命令 | 用途 |
|---|---|
pip list |
查看所有包 |
pip show 包名 |
查看包详情 |
pip freeze |
生成依赖列表 |
pip list --outdated |
检查更新 |
pipdeptree |
显示依赖树 |
提示:``python --version |
查看 Python 版本 |
这些方法可以帮你快速了解项目的 Python 依赖情况。