本文目录导读:

- 使用 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 依赖情况。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播