python的灵活性就在于它有很多第三方库(框架),而要使用pip安装的话,默认使用国外源,下载超慢,,所以我制作了一个基于wxpython框架的pip安装工具,集合了国内知名的六个镜像源,下载超快,分享给大家。为了方便,使用吾爱的wxpython可视化编辑器来设置ui,有不足的地方,希望多多指教。
main.py:
# -*- coding:utf-8 -*-
import os
import sys
import wx
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='pip安装工具', size=(479, 324),name='frame',style=541072384)
self.启动窗口 = wx.Panel(self)
self.Centre()
self.window_name_lable = wx.StaticText(self.启动窗口,size=(271, 36),pos=(82, 11),label='pip安装工具',name='window_name_lable',style=2321)
window_name_lable_字体 = wx.Font(15,74,90,400,False,'Microsoft YaHei UI',28)
self.window_name_lable.SetFont(window_name_lable_字体)
self.组合框2 = wx.ComboBox(self.启动窗口,value='',pos=(105, 55),name='comboBox',choices=['豆瓣源', '清华源', '阿里云', '中科大', '山东理工大学', '华中理工大学', ''],style=16)
self.组合框2.SetSize((113, 21))
self.标签2 = wx.StaticText(self.启动窗口,size=(89, 25),pos=(19, 55),label='安装镜像源:',name='staticText',style=2321)
self.分组单选框2 = wx.RadioBox(self.启动窗口,size=(182, 60),pos=(268, 55),label='选择地区',choices=['国内源', '国外源(普通)'],majorDimension=0,name='radioBox',style=4)
self.分组单选框2.Bind(wx.EVT_RADIOBOX,self.分组单选框2_选项被单击)
self.标签3 = wx.StaticText(self.启动窗口,size=(420, 18),pos=(25, 124),label='想要安装的python库,存在多个,用空格隔开,镜像源选择指的是国内的',name='staticText',style=2321)
self.ku = wx.TextCtrl(self.启动窗口,size=(441, 83),pos=(14, 147),value='',name='ku',style=1073741856)
self.pip_install_start = wx.Button(self.启动窗口,size=(75, 33),pos=(36, 236),label='开始',name='button')
self.pip_install_start.SetForegroundColour((255, 0, 0, 255))
self.pip_install_start.Bind(wx.EVT_BUTTON,self.pip_install_start_按钮被单击)
self.pip_close = wx.Button(self.启动窗口,size=(75, 33),pos=(297, 236),label='关闭',name='pip_close')
self.pip_close.Bind(wx.EVT_BUTTON,self.pip_close_按钮被单击)
def 分组单选框2_选项被单击(self,event):
print('分组单选框2,选项被单击')
def pip_install_start_按钮被单击(self,event):
#print('pip_install_start,按钮被单击')
pip_yuan = self.组合框2.GetSelection()
pip_yuan += 1
pip_diqu = self.分组单选框2.GetSelection()
pip_install_name = self.ku.GetValue()
print(pip_install_name)
pip_yuan_int = int(pip_yuan)
pip_diqu_int = int(pip_diqu)
if pip_diqu_int == 0:
print('国内源')
if pip_yuan_int == -1:
wx.MessageBox("请选择一个镜像源!", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_yuan_int == 1:#豆瓣源
wx.MessageBox("准备安装,豆瓣源,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name+' -i https://pypi.douban.com/simple/')
wx.MessageBox("安装完成", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_yuan_int == 2:#清华源
wx.MessageBox("准备安装,清华源,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name+' -i https://pypi.tuna.tsinghua.edu.cn/simple')
wx.MessageBox("安装完成", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_yuan_int == 3:#阿里云
wx.MessageBox("准备安装,阿里云,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name+' -i http://mirrors.aliyun.com/pypi/simple/')
wx.MessageBox("安装完成", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_yuan_int == 4:#中科大
wx.MessageBox("准备安装,中科大,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name+' -i https://pypi.mirrors.ustc.edu.cn/simple/')
wx.MessageBox("安装完成", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_yuan_int == 5:#山东理工大学
wx.MessageBox("准备安装,山东理工大学,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name+' -i http://pypi.sdutlinux.org/')
wx.MessageBox("安装完成", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_yuan_int == 6:#华中理工大学
wx.MessageBox("准备安装,华中理工大学,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name+' -i http://pypi.hustunique.com/')
wx.MessageBox("安装完成", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
if pip_diqu_int == 2:
wx.MessageBox("准备安装,国外源,按“ok”开始,请查看控制台。如果报错,请查看是否输入有误或pip工具出错。国内使用尽量选国内,网速更快。", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
os.system('python -m pip install '+pip_install_name)
wx.MessageBox("安装成功", "pip安装工具", wx.OK | wx.ICON_INFORMATION)
def pip_close_按钮被单击(self,event):
sys.exit()
class myApp(wx.App):
def OnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop()
效果如下:
GitHub地址:https://github.com/3469134108/main
附拓展:wxpython鼠标样式
详细文档:https://wxpython.org/Phoenix/docs/html/wx.StockCursor.enumeration.html
样式:
wx.CURSOR_NONE
wx.CURSOR_MAX
wx.CURSOR_ARROW 标准箭头光标。
wx.CURSOR_RIGHT_ARROW 指向右侧的标准箭头光标。
wx.CURSOR_BULLSEYE 靶心光标。
wx.CURSOR_CHAR 矩形字符光标。
wx.CURSOR_CROSS 十字光标。
wx.CURSOR_HAND 手形光标。
wx.CURSOR_IBEAM 工字梁光标(垂直线)。
wx.CURSOR_LEFT_BUTTON 表示鼠标左键按下。
wx.CURSOR_MAGNIFIER 放大镜图标。
wx.CURSOR_MIDDLE_BUTTON 表示按下中间按钮的鼠标。
wx.CURSOR_NO_ENTRY 不可输入的符号光标。
wx.CURSOR_PAINT_BRUSH 画笔光标。
wx.CURSOR_PENCIL 铅笔光标。
wx.CURSOR_POINT_LEFT 指向左的光标。
wx.CURSOR_POINT_RIGHT 指向右的光标。
wx.CURSOR_QUESTION_ARROW 箭头和问号。
wx.CURSOR_RIGHT_BUTTON 表示按下了右键的鼠标。
wx.CURSOR_SIZENESW 调整大小的光标指向NE-SW。
wx.CURSOR_SIZENS 调整大小的光标指向N-S。
wx.CURSOR_SIZENWSE 调整大小的光标指向NW-SE。
wx.CURSOR_SIZEWE 调整大小的光标指向W-E。
wx.CURSOR_SIZING 一般大小的游标。
wx.CURSOR_SPRAYCAN Spraycan游标。
wx.CURSOR_WAIT 等待光标。
wx.CURSOR_WATCH 监视光标。
wx.CURSOR_BLANK 透明光标。
wx.CURSOR_DEFAULT 标准X11光标(仅在wxGTK中)。
wx.CURSOR_COPY_ARROW MacOS Theme Plus箭头(仅在Mac中)。
wx.CURSOR_ARROWWAIT 带有标准箭头的等待光标。