Easy PyPI V1.2.4里的奇怪的彩蛋
没错,Easy PyPI V1.2.4来了
《细 节 改 进 和 优 化》
自己体验吧,我不剧透了
import os import tkinter as tk import tkinter.ttk as ttk from tkinter.filedialog import askdirectory import webbrowser from threading import Thread import sys ### from random import randint from time import sleep sdo=False sdi=False egg_count=0 if len(sys.argv)>=1 and '-debug' in sys.argv: sdi=True def showDebug(show_info=False): global sdo,sdo_btn,sdi,egg_count if show_info: if sdi: sdi=False sdi_btn['text']='显示调试信息' else: sdi=True sdi_btn['text']='隐藏调试信息' else: if sdo: win.geometry('300x420') sdo_btn['text']='显示调试选项 v' egg_count=0 sdo=False else: win.geometry('300x500') sdo_btn['text']='隐藏调试选项 ^' sdo=True def dprint(msg): global sdi if sdi: print(msg) def init(): global py_path,pip_path,python_path try: dprint('正在读取配置信息') py_path_f=open("./py_path.cfg",'r',encoding='utf-8') py_path=py_path_f.read() dprint('根据配置信息,您的Python位于:'+py_path) py_path_f.close() pip_path=py_path+"/scripts/pip.exe" python_path=py_path+"/python.exe" dprint('读取完成') if py_path=='使用环境变量': dprint('使用环境变量') pip_path='pip' python_path='python' except Exception as e: dprint('读取设置失败:'+str(e)) py_path=askdirectory(title='请选择Python安装路径') py_path_f=open("./py_path.cfg",'w',encoding='utf-8') py_path_f.write(py_path) py_path_f.close() pip_path=py_path+"/scripts/pip.exe" def locate_pip(name=''): os.system("where pip") os.system("where pip3") print('==================================================') def install(name,arg1='',arg2=''): os.system(pip_path+" install "+name+' -i https://pypi.douban.com/simple') print('==================================================') def uninstall(name): print(name) if name=='pip': print('想什么呢?你准备卸载PyPI?') else: os.system(pip_path+" uninstall "+name) print('==================================================') def upgrade(name=''): os.system(python_path+" -m pip install --upgrade pip -i https://pypi.douban.com/simple") print('==================================================') def list_pkg(name=''): os.system(pip_path+" list") print('==================================================') def about(name=''): os.system(pip_path+" --version") print('==================================================') def start(func,p=''): #print(func) dprint('将向函数传入此类型的参数:'+str(type(p))) dprint('将向函数传入参数:'+p) #t=Thread(target=func,args=p) t=Thread(target=lambda:func(p)) t.start() #彩蛋 def egg(): global egg_count,win,egg_can_be_click_btn if egg_count>=15 and egg_count<20: print('艹!!!!!') print('别点了!!!!!') print('行不行!!??') print('就当我求你了好吧……') elif egg_count==20: print('我就看你还能点不?') egg_btn['state']='disabled' win.geometry('300x530') egg_can_be_click_btn=ttk.Button(win,text='让上面的家伙可以被点击',command=funca) egg_can_be_click_btn.pack(fill=tk.X) elif egg_count==21: print('艹……') print('你还真点……') elif egg_count>21 and egg_count<70: msglst=['你还点!?','真就还能点了是吧?','嗯……要给你看哪一条呢?(翻','记得上次看到这条还是在上次','这真的很像Phigros的Tips吗?','请不要在意这些废话文学','您就不能不点?','有啥意思嘛……','楼下能救救我吗?算了,你还害过我……', '你觉得我更像Tips还是惠特利呢?','你都点了多少次了?真的不无聊吗?','冲着我开源来欺负我是吧?','你猜为啥我要留下这个彩蛋,现在你有答案了吗?','我觉得我还要扩充一下这个列表!!','我不是Tip!!也不是惠特利!!','或许在你眼里,我真的在说胡话……'] print(msglst[randint(0,len(msglst)-1)]) elif egg_count>=70: for i in range(0,50+1): print('要点是吧?成全你!!') print('==================================================') print('再见') sleep(0.7) egg_btn.pack_forget() egg_can_be_click_btn.pack_forget() tk.Label(win,text='').pack() egg_can_be_click_btn['text']='WC??刚才发生了什么?' sleep(0.2) egg_can_be_click_btn.pack(fill=tk.X) else: print('OHHHHHH!!!') print('这是一个彩蛋,竟然被你发现了!') print('你猜为什么都V1.2.4了,我还是要把这个彩蛋留着') egg_count+=1 egg_btn['text']='已点击×'+str(egg_count) print('==================================================') #一些乱到无法命名的函数 def funca(): global egg_btn egg_btn['state']='normal' egg_btn['text']='艹!楼下你别……' dprint('您传入了参数:'+str(sys.argv)) win=tk.Tk() win.title('Easy PyPI V1.2.4') win.geometry('300x420') win.resizable(0,0) win.update() init() name_enter=ttk.Entry(win) name_enter.pack(fill=tk.X) dprint('执行: '+pip_path+' install '+'(库名)'+' -i https://pypi.douban.com/simple') print('==================================================') #功能区 ttk.Button(win,text='安装',command=lambda:start(install,name_enter.get())).pack(fill=tk.X) ttk.Button(win,text='卸载',command=lambda:start(uninstall,name_enter.get())).pack(fill=tk.X) ttk.Button(win,text='列出所有已经安装的库',command=lambda:start(list_pkg)).pack(fill=tk.X) ttk.Button(win,text='更新PIP',command=lambda:start(upgrade)).pack(fill=tk.X) ttk.Button(win,text='关于PIP',command=lambda:start(about)).pack(fill=tk.X) ttk.Button(win,text='查看环境变量中有关PIP路径的配置',command=lambda:start(locate_pip)).pack(fill=tk.X) sdo_btn=ttk.Button(win,text='显示调试选项 v',command=showDebug) sdo_btn.pack(fill=tk.X) #介绍区 tk.Label(win,text='介绍',bg='lightgrey').pack(fill=tk.X) tk.Label(win,text='这个程序可以方便地从Pypi安装第三方库').pack(fill=tk.X) tk.Label(win,text='默认使用豆瓣镜像源以提升速度').pack(fill=tk.X) tk.Label(win,text='使用步骤',bg='lightgrey').pack(fill=tk.X) tk.Label(win,text='1.在窗口顶部的输入框内输入库名').pack(fill=tk.X) tk.Label(win,text='2.点击点击相关的功能按钮').pack(fill=tk.X) tk.Label(win,text='3.等待操作完毕,目前已支持多线程').pack(fill=tk.X) tk.Label(win,text='(不要关闭弹出的命令提示符)').pack(fill=tk.X) tk.Button(win,text='2022 By 人工智障',bg='lightgrey',bd=0,command=lambda:webbrowser.open("https://www.cnblogs.com/totowang")).pack(fill=tk.X) #调试选项 ttk.Button(win,text='显示输入的内容',command=lambda:print(name_enter.get()+'\n'+'==================================================')).pack(fill=tk.X) sdi_btn=ttk.Button(win,text='显示调试信息',command=lambda:showDebug(show_info=True)) sdi_btn.pack(fill=tk.X) egg_btn=ttk.Button(win,text='嘿!别错过我!',command=egg) egg_btn.pack(fill=tk.X) win.mainloop()
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现