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()

 

posted @ 2022-03-02 13:20  真_人工智障  阅读(27)  评论(0编辑  收藏  举报