吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1477|回复: 1
收起左侧

[Python 原创] 【Python】Better_pip3 pip3功能增强脚本

[复制链接]
ARtcgb 发表于 2021-7-18 13:46

Better_pip3

pip3功能集合脚本,适用于 Linux/macOS 以及 Windows(尚未测试)

环境需求

Python3(仅使用官方库)
Linux/macOS 使用效果最佳
Windows 暂未测试

项目地址

GitHub
喜欢的帮忙点个Star,谢谢啦

功能

自动设置 pip3 源

一键更新 pip3 过期的第三方库

更新 pip3

重设 pip3 源

使用方法

1、终端输入 git clone https://github.com/ARtcgb/Better_pip3.git至本地并 cd Better_pip3进入仓库

2、 终端执行 python3 main.py直接进入主程序,或通过python3 main.py [参数]形式快捷进行操作。 进入主程序后会自动检测 pip3 是否换源,为官方源的可自动切换至清华源。

参数菜单

形式:python3 main.py [参数]

-help 在终端中快速查看参数菜单
-update or -u 更新所有有新版本的库
-update_pip3 or -U 更新pip3
-unset or -un 重新设置pip3配置文件,未自行配置的只会影响pip3源,重设后为官方源

完整源码

import getpass
import os
import sys

"""
Project Name: better_pip
Author: ARtcgb
Email:artcgb@ebay.onmicrosoft.com
Date: 2021/7/16
"""

try:
    def configuration_pip3_conf():
        """
        检测 + 配置pip源
        """
        system = sys.platform
        unix_list = ["darwin", "linux2", "Linux"]
        if system in unix_list:
            print(os.popen("mkdir ~/.pip"))
            with open("./pip.conf", "w+", encoding="utf-8") as pipfile:
                pipfile.write("""[global]
            index-url = https://pypi.tuna.tsinghua.edu.cn/simple
            [install]
            trusted-host = https://pypi.tuna.tsinghua.edu.cn""")
            print(os.popen("mv pip.conf ~/.pip/pip.conf"))
        else:
            print(os.popen("mkdir C:\\Users\\" + getpass.getuser() + "\\pip"))
            with open("C:\\Users\\" + getpass.getuser() + "\\pip\\pip.ini", "w+", encoding="utf-8") as pipfile:
                pipfile.write("""[global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    [install]
    trusted-host = https://pypi.tuna.tsinghua.edu.cn""")
            print(os.popen("mv pip.ini C:\\Users\\" + getpass.getuser() + "\\pip"))
        print("配置完毕")

    def update_pip3():
        """
        更新pip3,python不存在版本冲突的话可以直接使用,否则将 python3 改为要更新版本的路径
        """
        print(os.popen("python3 -m install --upgrade pip").read())
        print("pip更新完成")

    def update_pip3_package():
        """
        检测并更新过期资源包
        """
        outdated_package_list = []
        for line in os.popen("pip3 list --outdated"):
            package = line.split()
            outdated_package_list.append(package[0])
        # 删除列表前两项(Python 中的无用表头及分割线)
        del outdated_package_list[0: 2]

        for outdated_package in outdated_package_list:
            print("updating:", outdated_package)
            print(os.popen("pip3 install " + outdated_package + " -U").read())
        print("更新完毕")

    def unset_pip3_conf():
        """
        重设pip3 配置文件
        """
        system = sys.platform
        unix_list = ["darwin", "linux2", "Linux"]
        if system in unix_list:
            print(os.popen("sudo rm ~/.pip/pip.conf"))
            print("重设完成")
        else:
            print(os.popen("del C:\\Users\\" + getpass.getuser() + "\\pip\\pip.ini"))
            print("重设完成")

    def main():
        print("欢迎!", getpass.getuser())
        print("Welcome! ", getpass.getuser())
        if os.popen("pip3 config list") == "":
            choice = input("检测到没有配置pip源,是否配置pip国内源?(y/n)")
            if choice == "y":
                configuration_pip3_conf()
                print('pip3源已设置完毕')
        while True:
            print("操作目录:1、重新配置pip3源 2、更新pip3 3、更新所有有新版本的第三方库 4、撤销pip3源(pip3 install 连续出现错误时选此项) exit 退出程序")
            choice = input("请输入要进行的操作:")
            if choice == "1":
                configuration_pip3_conf()
            elif choice == "2":
                update_pip3()
            elif choice == "3":
                update_pip3_package()
            elif choice == "4":
                unset_pip3_conf()
            elif choice == "exit":
                print("\nByebye")
                break

    if __name__ == '__main__':
        try:
            if sys.argv[1] == "-update" or sys.argv[1] == "-u":
                update_pip3_package()
            elif sys.argv[1] == "-update_pip3" or sys.argv[1] == "-U":
                update_pip3()
            elif sys.argv[1] == "-unset" or sys.argv[1] == "-un":
                unset_pip3_conf()
            elif sys.argv[1] == "-help":
                print('''-help 在终端中快速查看参数菜单
-update or -u 更新所有有新版本的库
-update_pip3 or -U 更新pip3
-unset or -un 重新设置pip3配置文件,未自行配置的只会影响pip3源,重设后为官方源''')
            else:
                main()
        except IndexError:
            main()
except KeyboardInterrupt:
    print("\nByebye")

免费评分

参与人数 3吾爱币 +7 热心值 +2 收起 理由
vikin + 1 鼓励转贴优秀软件安全工具和文档!
wan1330 + 1 + 1 我很赞同!
苏紫方璇 + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cosers 发表于 2021-7-18 13:55
当作备用源,省得有时官方源更新不了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表