java打包成可执行文件_将python代码打包成可执行文件(词达人助手2.0)

  • 首先安装pyinstaller

    pip install -i https://pypi.douban.com/simple pyinstaller

f6521d5deca4c4aa3d5a504b83aa7f82.png

  • 用cd 命令切换到python代码的路径,我的放桌面

cd DeskTop

b199fd1037a451c3562756526f14c221.png

  • 用打包命令将python代码打包

    pyinstaller -F 词达人助手2.0.py
  • pyinstaller相关参数
    -F : 打包成单个可执行文件
    -w : 打包之后运行程序,只有窗口不显示命令行
    -c : 打包之后运行程序,显示命令行

98abbe30f8ad0d6155e513f37961722a.png

  • 回车后就会在桌面生成3个相关文件,生成的exe文件就在dist文件夹里其他两个没用可以删除。

    dc6b3dbc96d15e0c2a5e02c5059045d8.png

    • e303e31c3edc780a887f795319ce4ce0.png

  • fa9d84aa300d7c3d0a9e575d4fb193e6.png

词达人助手2.0修改了一些代码,可以做更多题型。见下面完整代码。

# -*- coding: gbk -*-import requestsfrom translate import Translatorimport urllib.requestimport urllib.parseimport jsonimport reimport jsonimport timefiles = []import requestsfrom bs4 import BeautifulSoupimport randomimport ctypesimport sysSTD_INPUT_HANDLE = -10STD_OUTPUT_HANDLE = -11STD_ERROR_HANDLE = -12FOREGROUND_SKYBLUE = 0x0b  # 天蓝色std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)# 设置文字颜色def set_cmd_text_color(color, handle=std_out_handle):    Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)    return Bool# 重置文字颜色为白色#def resetColor(): #   set_cmd_text_color(FOREGROUND_DARKWHITE)# 以指定颜色输出文字def cprint(mess, color):    color_dict = {                  '天蓝色': FOREGROUND_SKYBLUE,                 }    set_cmd_text_color(color_dict[color])    print(mess)    #resetColor()# 颜色列表color_list = ['天蓝色',]def fanyi2(word):    # 利用GET获取输入单词的网页信息    r = requests.get(url='http://dict.youdao.com/w/%s/#keyfrom=dict2.top'%word)        # 利用BeautifulSoup将获取到的文本解析成HTML    soup = BeautifulSoup(r.text, "lxml")        # 获取字典的标签内容    s = soup.find(class_='trans-container')('ul')[0]('li')        # 随机选择输出的颜色    random.shuffle(color_list)        # 输出字典的具体内容    for item in s:        if item.text:            cprint(item.text, color_list[0])    return('='*40+'\n')    '''def read():    try:        with open("D:\\data\\responseBody.txt", "r",encoding='utf-8') as f:            data = f.read()            files.append(data)            return data    except Exception:        print("请先配置好Fiddler并在D盘创建名为data的文件夹!")                time.sleep(2.5)'''           def get_reuslt(repsonse):    # 通过 json.loads 把返回的结果加载成 json 格式    result = json.loads(repsonse)    #print ("输入的词为:%s" % result['translateResult'][0][0]['src'])    return result['translateResult'][0][0]['tgt']         def fanyi(word):   # 有道词典 api    url = 'http://fanyi.youdao.com/translate'    # 传输的参数,其中 i 为需要翻译的内容    key = {        'type': "AUTO",        'i': word,        "doctype": "json",        "version": "2.1",        "keyfrom": "fanyi.web",        "ue": "UTF-8",        "action": "FY_BY_CLICKBUTTON",        "typoResult": "true"    }    # key 这个字典为发送给有道词典服务器的内容    response = requests.post(url, data=key)    # 判断服务器是否相应成功    if response.status_code == 200:        # 然后相应的结果        return get_reuslt(response.text)    else:        print("有道词典调用失败")        # 相应失败就返回空        return None              def main(data):     #填空    if(data['data']['topic_mode'] in [519]):        a = data['data']['stem']        print("\n"+a['content'])               #单选    elif(data['data']['topic_mode'] in [11,15,21]):        a = data['data']['stem']        options = data['data']['options']        print(fanyi(a['content']))        print("\n"+"\n")    elif(data['data']['topic_mode'] in [22]):        a = data['data']['stem']        options = data['data']['options']        print(fanyi2(a['content']))        print("\n"+"\n")        #测试题选英语单词    elif(data['data']['topic_mode']in [17]):        a = data['data']['stem']        b = data['data']['options']        print(a['content'])        print("----------"+"\n")        k=0        for i in b:            print(fanyi(b[k]['content']))            k+=1        print("\n"+"-------------------------------------"+"\n")        time.sleep(1)               #选词(短语)    elif(data['data']['topic_mode'] in [32]):        a = data['data']['stem']        options = data['data']['options']        cou=1        print(fanyi(a['remark']))                for option in options:            print(str(cou)+":"+str(fanyi2(option['content'])))            cou+=1        print("\n"+"-------------------------------------"*3+"\n"+"\n")        st = input("请输入‘p’继续否则暂停2分钟 ")        if st=='p':            time.sleep(0.01)        else:            time.sleep(120)        #多选    elif(data['data']['topic_mode'] in [31]):        a = data['data']['stem']['remark']        k=0        for i in a:            print(a[k]['sen_marked']+"\n")            k+=1        print("\n"+"-------------------------------------"+"\n")        time.sleep(3.5)        #全英文单选    elif(data['data']['topic_mode'] in [42]):        a = data['data']['stem']['remark']        print("题目: "+a)        options = data['data']['options']        cou=1        for option in options:            print(str(cou)+":"+str(fanyi(option['content'])))            cou=cou+1        print("\n"+"-------------------------------------"+"\n")        time.sleep(2.5)        #填单词    elif(data['data']['topic_mode'] in [51]):        a = data['data']['stem']['remark']        print(fanyi(a))        print("\n"+"-------------------------------------"+"\n")        time.sleep(2.5)if __name__ == '__main__':    t=1    try:        while True:            #data=read()            try:                with open("D:\\data\\responseBody.txt", "r",encoding='utf-8') as f:                    data = f.read()                    files.append(data)            except Exception:                print("请先配置好Fiddler并在D盘创建名为data的文件夹!")                time.sleep(2.5)                sys.exit()            main(json.loads(data))            time.sleep(2)            t=0                except Exception:        if t==1:            print("请先打开Fiddler,选好单词做一题,再运行本程序!")            time.sleep(4)        else:            print("答题完毕!")            time.sleep(1.5)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值