You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python脚本自动检查并安装所需pip包(课程项目)

Python脚本自动检查并安装依赖方案

方法一:通过try-except捕获导入异常实现

这是最直接的方式,利用Python导入失败时抛出的ImportError触发安装流程,无需额外依赖:

import subprocess
import sys

def install_package(package_name):
    # 使用当前脚本的Python解释器执行pip安装,避免多环境冲突
    subprocess.check_call([sys.executable, "-m", "pip", "install", package_name])

# 单个包检查示例
try:
    import requests
except ImportError:
    install_package("requests")
    import requests

# 批量处理依赖列表
required_packages = ["requests", "numpy", "pandas"]
for pkg in required_packages:
    try:
        __import__(pkg)  # 用__import__处理字符串格式的包名导入
    except ImportError:
        install_package(pkg)
        __import__(pkg)

方法二:通过pkg_resources检查包状态

利用setuptools内置的pkg_resources模块,可直接检查包是否已安装(无需尝试导入):

import subprocess
import sys
from pkg_resources import get_distribution, DistributionNotFound

def install_package(package_name):
    subprocess.check_call([sys.executable, "-m", "pip", "install", package_name])

def is_package_installed(package_name):
    try:
        get_distribution(package_name)
        return True
    except DistributionNotFound:
        return False

required_packages = ["requests", "matplotlib"]
for pkg in required_packages:
    if not is_package_installed(pkg):
        install_package(pkg)

关键注意事项

  • 优先使用sys.executable而非硬编码py/python,确保调用当前运行脚本的Python解释器,避免环境混乱
  • 若需要指定包版本,可修改安装命令为install_package("requests==2.31.0")
  • 提前告知教授脚本的自动安装逻辑,避免被误判为异常代码
  • 确保运行脚本的用户具备pip安装权限(学生本地环境或课程实验室环境通常满足)

内容的提问来源于stack exchange,提问作者Nikos Gavriilidis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 18:33:23