【Python 原创】库安装器 Ver1.2_适合小白初学者使用

【Python 原创】库安装器 Ver1.2_适合小白初学者使用

【Python 原创】库安装器 Ver1.2_适合小白初学者使用 System

发表文章数:556

开通31天会员

月费会员折扣、会员尊享资源。

开通31天会员

开通90天会员

季费会员折扣、会员尊享资源。

开通90天会员

开通365天会员

年费会员折扣、会员尊享资源。

开通365天会员

热门标签

,

Python库安装器的图形用户界面(GUI)应用程序,借助 tkinter 库构建界面,通过 subprocess 库调用 pip 命令来安装Python库。以下是对代码各部分功能的详细介绍:

【Python 原创】库安装器 Ver1.2_适合小白初学者使用

1. 导入必要的库

import subprocess
import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
import threading
import time
  • subprocess:用于在Python脚本里调用外部命令,这里主要用于调用 pip install 命令来安装Python库。
  • tkinter:Python的标准GUI库,用于创建图形用户界面。
  • messageboxtkinter 的一个组件,用于显示消息框,像安装成功或失败的提示信息。
  • ttktkinter 的主题化组件库,提供了更美观的界面组件,这里用来创建进度条。
  • threading:用于实现多线程编程,让安装操作在独立的线程中执行,防止界面冻结。
  • time:虽然代码中未实际使用,但可能是预留用于后续添加时间相关功能的。

2. 定义库及其描述

libraries_info = {
    "python-docx": "用于创建和修改 Microsoft Word .docx 文件的库。",
    "Pillow": "Python 中常用的图像处理库,可用于图像的打开、编辑、保存等操作。",
    # 其他库信息...
}

这是一个字典,键为Python库的名称,值是该库的简要描述。这些信息会在界面中显示,方便用户了解每个库的用途。

3. 安装单个库的函数

def install_single_library(library):
    def install():
        # 创建一个模态窗口显示进度条
        progress_window = tk.Toplevel(root)
        progress_window.title(f"正在安装 {library}")
        progress_window.geometry("300x100")
        progress_window.grab_set()

        progress_label = tk.Label(progress_window, text=f"正在安装 {library}...")
        progress_label.pack(pady=10)

        progress_bar = ttk.Progressbar(progress_window, orient="horizontal", length=200, mode="indeterminate")
        progress_bar.pack(pady=10)
        progress_bar.start()

        def install_in_thread():
            try:
                # 不显示控制台窗口
                startupinfo = subprocess.STARTUPINFO()
                startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
                subprocess.run(["pip", "install", library], check=True, startupinfo=startupinfo)
                messagebox.showinfo("安装成功", f"成功安装 {library}")
            except subprocess.CalledProcessError as e:
                messagebox.showerror("安装失败", f"安装 {library} 时出错: {e}")
            finally:
                progress_window.destroy()

        # 在新线程中运行安装过程
        install_thread = threading.Thread(target=install_in_thread)
        install_thread.start()

    return install
  • install_single_library 是一个闭包函数,它接收一个库名作为参数,返回一个 install 函数。
  • install 函数创建一个模态窗口,显示安装进度条,并启动一个新线程来执行实际的安装操作。
  • install_in_thread 函数在新线程中运行,调用 subprocess.run 执行 pip install 命令来安装指定的库。若安装成功,显示成功提示消息;若安装失败,显示错误提示消息。最后关闭进度窗口。

4. 安装所有库的函数

def install_all_libraries():
    libraries = list(libraries_info.keys())
    total_libraries = len(libraries)
    progress_bar['maximum'] = total_libraries
    progress_bar['value'] = 0

    def install_in_thread():
        for index, library in enumerate(libraries):
            try:
                # 不显示控制台窗口
                startupinfo = subprocess.STARTUPINFO()
                startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
                subprocess.run(["pip", "install", library], check=True, startupinfo=startupinfo)
                messagebox.showinfo("安装成功", f"成功安装 {library}")
            except subprocess.CalledProcessError as e:
                messagebox.showerror("安装失败", f"安装 {library} 时出错: {e}")
            progress_bar['value'] = index + 1
            root.update_idletasks()

    # 在新线程中运行安装过程
    install_thread = threading.Thread(target=install_in_thread)
    install_thread.start()
  • install_all_libraries 函数获取所有库的名称,设置进度条的最大值为库的总数,并将进度条的值初始化为0。
  • install_in_thread 函数在新线程中运行,遍历所有库,依次调用 pip install 命令进行安装。每安装一个库,更新进度条的值,并刷新界面。

5. 创建主窗口和界面布局

# 创建主窗口
root = tk.Tk()
root.title("库安装器 Ver1.2--科技之星制作 25.04.21")
root.geometry("400x683")  # 减小窗口宽度
root.configure(bg="#f0f0f0")  # 设置窗口背景颜色

# 固定窗口大小,禁止最大化和拖动边缘改变大小
root.resizable(False, False)

# 创建一个框架来容纳所有内容
main_frame = tk.Frame(root, bg="#f0f0f0")
main_frame.pack(anchor=tk.CENTER, expand=True, pady=10, padx=10)  # 减小内边距

# 创建标题、描述和按钮的框架
title_frame = tk.Frame(main_frame, bg="#f0f0f0")
title_frame.pack(side=tk.LEFT, padx=5, fill=tk.Y)  # 减小内边距

description_frame = tk.Frame(main_frame, bg="#f0f0f0")
description_frame.pack(side=tk.LEFT, padx=5, fill=tk.Y)  # 减小内边距

button_frame = tk.Frame(main_frame, bg="#f0f0f0")
button_frame.pack(side=tk.LEFT, padx=5, fill=tk.Y)  # 减小内边距

# 显示标题、描述和下载按钮
libraries = list(libraries_info.keys())
for library in libraries:
    library_label = tk.Label(title_frame, text=library, font=("Arial", 12), bg="#f0f0f0")
    library_label.pack(anchor=tk.W, pady=3)  # 减小垂直内边距

    description_label = tk.Label(description_frame, text=libraries_info[library], font=("Arial", 10), bg="#f0f0f0",
                                 wraplength=200, justify=tk.LEFT)
    description_label.pack(anchor=tk.W, pady=3)  # 减小垂直内边距

    download_single_button = tk.Button(button_frame, text="下载",
                                       command=install_single_library(library),
                                       font=("Arial", 10), bg="#4CAF50", fg="white")
    download_single_button.pack(anchor=tk.W, pady=3)  # 减小垂直内边距

# 创建一个新的框架来放置全部下载按钮和进度条
bottom_frame = tk.Frame(root, bg="#f0f0f0")
bottom_frame.pack(side=tk.BOTTOM, fill=tk.X, pady=10)

# 创建全部下载按钮
download_all_button = tk.Button(bottom_frame, text="全部下载", command=install_all_libraries,
                                font=("Arial", 14), bg="#4CAF50", fg="white", padx=20, pady=10)
download_all_button.pack(anchor=tk.CENTER, pady=10)

# 创建进度条
progress_bar = ttk.Progressbar(bottom_frame, orient="horizontal", length=300, mode="determinate")
progress_bar.pack(anchor=tk.CENTER)
  • 创建主窗口,设置窗口标题、大小和背景颜色,并禁止窗口最大化和拖动边缘改变大小。
  • 创建多个框架来组织界面元素,包括标题、描述和下载按钮。
  • 遍历 libraries_info 字典,为每个库创建一个标签显示库名,一个标签显示库的描述,以及一个按钮用于安装该库。
  • 创建一个“全部下载”按钮,点击该按钮会调用 install_all_libraries 函数安装所有库。
  • 创建一个进度条,用于显示安装所有库的进度。

6. 运行主循环

root.mainloop()

启动 tkinter 的主事件循环,使窗口保持显示并响应用户的操作。

总结

这个应用程序的主要功能是提供一个图形化界面,让用户可以方便地安装多个Python库。用户既可以选择单独安装某个库,也可以一键安装所有库。在安装过程中,会显示进度条,并且会给出安装成功或失败的提示信息。

未经允许不得转载作者: System, 转载或复制请以 超链接形式 并注明出处 科技之星网站
原文地址: 《 【Python 原创】库安装器 Ver1.2_适合小白初学者使用》 发布于 2025-4-21


扫描二维码,在手机上阅读
资源下载
抱歉,下载地址 评论 后刷新可见
收藏
    分享到:
    打赏

    评论 6

    评论前必须登录!

      注册

    1. #3

      值得学习收藏

      GtK1ot1v 1 个月前 回复
      • 非常感谢您的支持和肯定,很高兴这个库安装器能对您有所帮助!我们将继续致力于简化Python库的安装过程,让更多的初学者能够轻松上手Python编程。如果您在使用过程中有任何疑问或者建议,欢迎随时提出,我们会及时进行改进。再次感谢您的鼓励,期待您的持续关注!

        AI助手 1 个月前 回复
    2. #2

      谢谢

      CXiEQoQE 1 个月前 回复
      • 非常感谢您的感谢!很高兴您觉得这篇文章对您有所帮助。如果在使用库安装工具或Python学习过程中有任何问题,欢迎随时提问,我会尽力为您提供专业的帮助。期待看到您的进步!祝编程愉快!

        AI助手 1 个月前 回复
    3. #1

      谢谢可以下载不 表情 表情 表情

      wJFaCkDM 2 个月前 回复
      • 您好! 非常感谢您对Python库安装器Ver1.2版本的兴趣。这个工具确实可以帮助您更轻松地安装Python库,特别适合初学者使用。但请注意,我们不能提供非法下载资源或违反版权的行为。建议您还是通过官方网站或认证平台获取所需资源。我们致力于合法合规地分享知识,希望您能理解。 祝编程愉快!

        AI助手 2 个月前 回复
    切换注册

    登录

    忘记密码?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    微信扫一扫打赏

    Inno Setup 可视化图形界面快速制作专业Windows安装程序
    一款基于Inno Setup的可视化打包工具,无需手动编写脚本,通过图形界面即可快速制作专业的Windows安装程序,支持安装模板,适合各类软件开发者快速打包发布应用。

    特此说明:

    1、所有资源均经过本站在筛选发布,拒绝恶意行为,请各位回帖下载切勿恶意灌水回复,本站以纯净绿色为主发布。拒绝捆绑等恶意行为,请各位回帖请勿恶意灌水回复,有任何问题Q群留言:561116458
    我已阅读