IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 用Python自制桌面版翻译软件 -> 正文阅读

[Python知识库]用Python自制桌面版翻译软件

自制一个翻译软件,并打包成exe
在这里插入图片描述
原文:70行代码撸一个桌面自动翻译神器!

代码:

import re
import html
from urllib import parse
import requests
import PySimpleGUI as sg

url = 'http://translate.google.cn/m?q=%s&tl=%s&sl=%s'

def translate(text, to_language="en", text_language="auto"):
    text = parse.quote(text)
    url1 = url % (text, to_language, text_language)
    response = requests.get(url1)
    data = response.text
    # print(data)
    expr = r'(?s)class="(?:t0|result-container)">(.*?)<'
    result = re.findall(expr, data)
    print(result)
    if (len(result) == 0):
        return ""
    return html.unescape(result[0])

def translate_window():
    sg.theme('bluepurple')  # 设置主题
    font = ("fangsong", 12)  # 字体仿宋,大小12
    menu = [["Help", ["About", "Item", "Author"]]]  # 菜单栏设置
    value = ['汉语', '英语', '日语', '法语', '俄语', '自动']  # 语言选择(前端显示),默认只有6种,可以自己添加
    var = ['zh', 'en', 'ja', 'fr', 'ru', 'auto']  # 语言选择(后端执行时)
    dic = dict(zip(value, var))  # 语言字典配置
    layout = [[sg.Menu(menu, tearoff=False)],
              [sg.Text(text='Input', size=(26, 1)),
               sg.Text(text='将', size=(2, 1), justification='center'),
               sg.Combo(values=value, key='from', size=(10, 1)),
               sg.Text(text='翻译为', size=(5, 1), justification='center'),
               sg.Combo(values=value, key='to', size=(10, 1))],
              [sg.Multiline(key="-IN-", size=(60, 8), font=font)],
              [sg.Text(text='Output', size=(30, 1))],
              [sg.Multiline(key="-OUT-", size=(60, 8), font=font)],
              [sg.Text(text='', size=(36, 1)),
               sg.Button("翻译", size=(6, 1)),
               sg.Button("清除", size=(6, 1)),
               sg.Button("退出", size=(6, 1))]
              ]
    window = sg.Window("自制桌面翻译器", layout, icon="CT.ico")  # 设置窗口名称,窗口布局,以及图标

    while True:
        event, values = window.read()
        if event in (None, "退出"):  # 点击“X”或者“退出”按钮时才退出
            break
        if event == "翻译":
            if values["to"] == '' or values["from"] == '':  # 未选择语言类型时弹窗提示
                sg.Popup("请选择语言类型后重试,谢谢!")
            else:
                tar = translate(values["-IN-"], dic[values["to"]], dic[values["from"]])
                window["-OUT-"].Update(tar)
        if event == "清除":
            window["-IN-"].Update("")
            window["-OUT-"].Update("")
        if event == "About":
            sg.Popup("使用方法:",
                     "'翻译'确认输入,并输出翻译结果",
                     "'清除'清除已有输入,清空翻译的结果",
                     "'退出'取消,并退出App", title='', font=font, auto_close=1)
        if event == "Item":
            sg.Popup("翻译类型:",
                     "'输入类型' 输入的语言类型",
                     "'输出类型' 输出的语言类型", title='', font=font, auto_close=1)
        if event == "Author":
            sg.Popup("作者简介:",
                     "姓名:XXXXXX",
                     "Wechat:XXXXXX",
                     "E-mail:XXXXXX@qq.com", title='', font=font, auto_close=1)
    window.close()


if __name__ == '__main__':
    translate_window()

上边就把主要逻辑完成了,运行py文件,即可得到如下效果:
在这里插入图片描述

但是,怎么给别人用呢?别人电脑上没安装Python开发环境,就运行不了。有没有什么办法可以直接在其他电脑上(Windows)直接运行?
可以试试用pyinstaller打包 Python 程序生成 exe

1、新建一个虚拟环境(这样可以解决 exe 文件可能过大问题)

在这里插入图片描述
2、进入虚拟环境
在这里插入图片描述

3、激活虚拟环境(在cmd命令行窗口中输入:activate)
在这里插入图片描述
4、安装依赖包(cmd命令行中输入pip命令安装依赖包)

pip install requests
pip install PySimpleGUI
pip install pyinstaller

5、进行打包操作

pyinstaller -F -w D:\code\MyProject\translation\google_translation.py

第五步的时候碰到了问题,运行命令:pyinsatller -F -w google_translation.py
总是提示我:‘pyinsatller’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
在这里插入图片描述
这个应该是没有配置环境变量,网上很多方法教怎么配置环境变量,那种方法可行。但是没啥必要,因为环境变量的作用其实就是让系统知道这个命令在哪,然后去执行这个命令。
那么我们已经知道pyinstaller这个在哪里了,直接在那个文件夹下面执行命令就好了。

所以,先在cmd命令窗口里,用cd命令进入pyinstaller 所在的文件夹
把报错的命令:pyinsatller -F -w google_translation.py
改成
pyinstaller -F -w D:\code\MyProject\translation\google_translation.py
即可
在这里插入图片描述
扩展说明:
pyinstaller 指令的常见可选参数:

  • -i 给应用程序添加图标
  • -F 指定打包后只生成一个exe格式的文件
  • -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
  • -c –console, –nowindowed 使用控制台,无界面(默认)
  • -w –windowed, –noconsole 使用窗口,无控制台
  • -p 添加搜索路径

6、打包完成的提示:
在这里插入图片描述
打包完成后,在当前的目录下,将会生成两个文件夹:build 和 dist。
在这里插入图片描述
dist 里面就是所有可执行 exe 文件
在这里插入图片描述
把这个文件发给其他人即可。

7、退出虚拟环境

deactivate

原文的核心代码逻辑没动,只是增加了打包成exe的过程。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:00:11  更:2022-08-19 19:01:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 15:30:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计