Python版本过多导致pip下载不起作用——解决办法

一、导言:

        今天在使用脚本的时候,需要许多库,使用pip下载了无数遍,但是一直报错,显示没有对应模块。

pip install -r requirements.txt

        报错显示(搬用 / 确实没留下令人崩溃的报错截图)

        在网上查阅到了解决方法,为了更好了解和学习python语言,在ai的帮助下写了个脚本。纠正了ai代码逻辑顺序的错误,并给出了一定的提示。

二、原理:

        启动脚本的python版本与pip下载到的python版本不匹配。

三、命令行解决方法:

py -[python的版本号] -m pip install -r [资源目录]

eg:py -3.8 -m pip install -r "C:\Users\administrator\Desktop\requirements.txt"

四、python脚本:

import subprocess
import sys

def replace_python_version(command, new_version):
    # 替换命令中的Python版本
    return command.replace('-3.8', f'-{new_version}')

def install_requirements(requirements_path, python_version):
    # 使用-r选项安装依赖
    try:
        subprocess.run(f'py -{python_version} -m pip install -r "{requirements_path}"', shell=True, check=True)
    except subprocess.CalledProcessError as e:
        print(f"使用-r选项安装依赖时发生错误: {e}")
        print("\n\n输入错误!!输入'sb是我'关闭脚本。\n\n")
        while True:
            exit_command = input("> ")
            if exit_command.lower() == 'sb是我':
                sys.exit(1)

def install_resource(resource_name, python_version):
    # 直接安装单个资源
    try:
        subprocess.run(f'py -{python_version} -m pip install {resource_name}', shell=True, check=True)
    except subprocess.CalledProcessError as e:
        print(f"直接安装资源时发生错误: {resource_name}, 错误信息: {e}")
        print("\n\n输入错误!!输入'sb是我'关闭脚本。\n\n")
        while True:
            exit_command = input("> ")
            if exit_command.lower() == 'sb是我':
                sys.exit(1)

def main():
    python_version = input("请输入Python版本(例如3.9): ")
    install_type = input("请选择安装方式: \n1. 使用-r选项安装整个依赖文件\n2. 直接安装单个资源\n请输入选项(1或2): ")

    if install_type == '1':
        requirements_path = input("请输入资源清单文件的完整路径(例如./requirements.txt)!请去除路径两边的引号!: ")
        install_requirements(requirements_path, python_version)
    elif install_type == '2':
        resource_name = input("请输入要安装的单个资源名称(例如flask): ")
        install_resource(resource_name, python_version)
    else:
        print("无效的选项,请重新运行脚本。")
        print("\n\n输入错误!!输入'sb是我'关闭脚本。\n\n")
        while True:
            exit_command = input("> ")
            if exit_command.lower() == 'sb是我':
                sys.exit(1)

    print("安装完成。输入'GG'关闭脚本。")
    while True:
        exit_command = input("> ")
        if exit_command.lower() == 'gg':
            break

if __name__ == "__main__":
    main()

        小白的学习之路上的记录,欢迎大佬们指点。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值