目录

一、 Python 打包工具—Pyinstaller

下载命令

 Pyinstaller的参数

二、Python 打包可执行exe文件

方法一:python虚拟环境下+打包的全过程:

第一种情况: python不带参数打包exe及调用方式

第二种情况: python带参数打包exe及调用方式

三、ico 图片生成


一、 Python 打包工具—Pyinstaller

PyInstaller 是一个可以将 Python 程序打包成一个独立可执行文件的软件包。它通过读取已经编写好的 Python 脚本,分析代码执行需要的模块和库,然后将其依赖库一同打包转成可以直接脱离于python环境下独立运行的程序,目前已经支持 在Windows、Linux 和 Mac OS 上运行。简单的理解就是,通过对程序脚本的打包(尤其是带有操作界面的程序),可以获得一个完整的软件。

下载命令

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

 

 Pyinstaller的参数

其中 Pyinstaller 命令的参数,其中

  • -F 参数代表制作独立的可执行程序。
  • -w 是指程序启动的时候不会打开命令行。如果不加 -w 的参数,就会有黑洞洞的控制台窗口出来。此外,-w 参数在 GUI 界面时非常有用。
  • -i就是指设置自己的图标图案,因为默认打包图片如下图所示。这个参数也可以写成 --icon=aiyc.ico

在这里插入图片描述

二、Python 打包可执行exe文件

方法一:python虚拟环境下+打包的全过程

conda 虚拟环境下

#创建虚拟环境
conda create -n aotu python=3.6

#激活虚拟环境
conda activate aotu

#Pyinstaller打包
Pyinstaller -F -w -i apple.ico py_word.py

(1)先根据现有的虚拟环境创建项目,

  将代码复制进去,

第一种情况: python不带参数打包exe及调用方式

(2)修改代码运行结果的展现方式:

  

 (3)打开终端,运行代码

(venv) PS D:\my\python-pycharm\zx> cd path_recommend
(venv) PS D:\my\python-pycharm\zx\path_recommend> pyinstaller -F -w get_shortest_distance.py
pyinstaller -F -w -i g:\2345Downloads\logo.ico login.py 
--hidden-import doTest.py --hidden-import itemContent --hidden-import queryDB.py 
--hidden-import view.py --hidden-import Applications.py --hidden-import mainWindow.py

解释:进入到cmd命令行中,然后cd到我们的项目代码所在的具体的目录,在项目代码所在的目录中,使用上述代码进行打包。

其中,

  • -F :大写,  打包成一个exe文件;
  • -w:小写,取消控制台显示;
  • -i  :小写,忽略打包过程中遇到的错误,就是遇到错误也继续执行;

从这个项目文件目录安排上可以看出,这里没有在项目里放置更多的文件夹,一些代码文件都是散放在主文件夹中,在 pyinstaller -F -w -i之后放的是我们需要最终显示的图标的绝对路径,之后的第一个Python文件就是这个项目的主文件,之后使用--hidden-import导入这个项目中的一些其他的Python文件。

下面是打包命令执行后程序打包的编译过程,具体如下: 

 最后会显示打包成功。

 

 (3)执行完毕之后,会生成几个文件夹,如下图所示。

在dist里面就有了一个exe程序,这个就是可执行的exe程序,如下图所示。 

 从上图中,我们可以看到最后打包成功了,打包成功之后会在当前目录下生成两个文件夹,我们的EXE文件就在dist文件夹中。

已经生成了一个exe 应用程序,看来已经成功一半了。

(4)我们把这个get_shortest_distance.exe拖到和get_shortest_distance.py平级的目录,双击运行一下这个exe。

(5)双击生成的exe文件,就可以看到新生成的txt结果文件了。

 欧克。

第二种情况: python带参数打包exe及调用方式

 参考python带参数打包exe及调用方式_Python-考高分网

一般打包都是使用pyinstaller -F -w xxx.py,传入参数之后没有任何提示和print。可以使用sys进行传参。换成

pyinstaller -F xxx.py

即可。

(2) 修改代码运行结果的展现方式:

if __name__ == '__main__':
    V = list([i for i in range(0, 315)])
    E = main_distance('data/tw_315_with_dis.csv')
    graph = {
        'V': V,
        'E': E
    }

    start_node = sys.argv[1]
    end_node = sys.argv[2]
    print("起点:", start_node, "终点:", end_node)
    # start_node, end_node = 1, 60
    path, sum_coss = get_shortest_distance(start_node, end_node, graph)
    stri = "节点" + str(start_node) + "到节点" + str(end_node) + "的最短路径为:" + str(path) + "\n总距离为:" + str(sum_coss)
    print(stri)
    with open('result.txt', 'w', encoding='UTF-8') as file:
        file.write(str(stri))
    output = os.popen('get_shortest_distance.exe arg1 arg2').read()

(3)打开终端,运行命令,生成dist文件夹下的exe应用程序。

pyinstaller -F get_shortest_distance.py

把这个get_shortest_distance.exe拖到和get_shortest_distance.py平级的目录,

(4)在pycharm的终端输入运行exe命令,

(venv) PS D:\my\python-pycharm\zx\path_recommend> .\get_shortest_distance.exe 1 60
起点: 1 终点: 60
节点1到节点60的最短路径为:[1, 0, 8, 9, 12, 14, 16, 19, 297, 298, 299, 300, 302, 304, 305, 303, 301, 296, 18, 17, 15, 295, 293, 291, 288, 287, 285, 282, 281, 279, 306, 307, 308, 309, 311, 314, 13, 11, 10, 4 24, 30, 31, 32, 33, 35, 38, 39, 41, 42, 43, 45, 47, 48, 52, 55, 58, 53, 60]

同样,在cmd中输入命令也是一样的,

欧克。

三、ico 图片生成

自己做的软件都喜欢放上自己的图标,不过哪来那么多 ico 图片呢?一个是可以找专门的 ico 图片网站,不过都很小众,图片库也很小。另一个是可以自己生成,这里就给大家分享一个网站,可以把其他格式图片转成 ico 格式:在线图片转icon格式 – 图片转换成icon在线工具 – 迅捷PDF转换器在线免费版

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐