Python实现翻译小工具(python打包成exe文件)

Python019

Python实现翻译小工具(python打包成exe文件),第1张

此时运行windows.py会出现界面,而且翻译可用。

其中:

然后选择对应的路径,比如我的是第一个。

切换到项目目录下执行

待执行完毕,可以项目文件下生成两个文件夹dist中为msi安装文件,在其他windows服务器安装后就为build下的文件内容,在build下的exe.win-amd64-3.6下的windows.exe 就可打开小工具

【注意:】要切换到python3.5,否则还要安装用到的包。

cx_Freeze 需要通过一个 简单的安装脚本 来进行构建。一般来说,只要 Python 脚本本身能无错运行在自身环境,且 cx_Freeze distutils 安装脚本配置得当,那么构建出的可执行文件就能在任何相同操作系统下运行。作为开始,首先充分调试自己的 Python 脚本(不妨假设其名为 main.py)。main.py 允许从任何库或其他脚本中导入,甚至用 os.system() 或 subprocess.run() 等调用其他程序。确认无误后,在 windows.py 所在目录下新建一个较简单的 cx_Freeze 脚本,不妨假设其名为 setup.py,内容如下:

可见其基本遵照了 官方文档的示例 ,并去除了一些暂时用不到的语句。其中,build_exe_options 暂时留空,待第一次构建后根据可能的报错信息补充;原例中的 base 实际上默认就是 None,即命令行程序,除非需要构建图形界面程序,否则配置了反而是 画蛇添足 。现在可以打开命令行终端,在此目录下运行

由于 cx_Freeze 在编译时,实际上是将全部导入库都编译了一遍并放在子目录中供主程序调用,从而真正独立于 Python 环境。其自称能够自动分析哪些库需要包含。然而事实上对深入一定层次后的导入分析有瑕疵(例如 windows.py 引用了一个库,该库又引用了另一个库,则第三个库有可能分析不出)。遇到这种错误,绝大多数情况下可以手动在 setup.py 中指定额外包含的库,既可以在 build_exe_options 下的 'packages' 中指定库名,也可以在 build_exe_options 中新建一个键名为 'includes' 然后指定库名,形如:

这个过程有时要重复多次,直到添加完所有<del>届不到</del>不能自动检测到的库。据说也可以直接在 setup.py 中导入(import)库,未亲测。个别特例无效,请继续阅读。

【参考】

我改了一下

dictionary={}    # 创建一个空字典

# 定义一个函数,功能:向字典中增加记录

# dictionary 是字典,en 是英文单词,ch 是对应中文单词

def add_dict(dictionary, en, ch):

    dictionary[en] = ch              # 增添or 更新一条记录

    dictionary[ch] = en

    print("添加成功")  

     

     

# 定义一个函数,功能:翻译

# dictionary 是字典,string 是要查找的单词(中文or 英文)

def find(dictionary, string):

    if string not in dictionary:     # 如果string 不在dict 内,打印提示信                                        息

        print("该单词不在dict 内")

    else:                            # 否则,给出对应中文释义

        print("该单词", string, "的意思是:", dictionary[string])

        

# 向字典内增添几个记录,测试增加记录的功能,也可尝试用while 循环持续接收用户添加词条

for i in range(3):

    en = input("增添的英文单词: ")      # 接受输入

    ch = input("对应的中文单词: ")

    add_dict(dictionary, en, ch)      # 调用add_dict 函数,往字典中添加内                                         容

# 接收用户输入,调用find 函数实现翻译

string = input("请输入要查询的单词: ")

find(dictionary, string)

运行效果:

增添的英文单词: apple

对应的中文单词: 苹果

添加成功

增添的英文单词: banana

对应的中文单词: 香蕉

添加成功

增添的英文单词: peach

对应的中文单词: 桃子

添加成功

请输入要查询的单词: peach

该单词 peach 的意思是: 桃子

错误应该是你定义函数时的变量名(dictionary)和函数内部的变量名(dict)不一致导致的,还有你在测试add_dict的时候把add_dict的返回值None赋给了一个名叫dictionary的变量,这是完全没必要的,并且导致了和现有的dictionary的冲突,使得第二次循环添加单词时出现错误。