当前位置:   article > 正文

【Python】pyinstaller完整使用教程_python pyinstaller

python pyinstaller

  python代码想要像C语言一样编译得到exe文件可能要稍微麻烦一点,不过也还好,python中有一个第三方包pyinstaller可以较为方便地将py文件转换成exe文件。使用时直接在控制台输入pyinstaller <filename.py>即可,当然,一般会加上一些参数,常用的参数如下所示。

  • -F: 生成单个可执行文件
  • -w: 去掉控制台窗口
  • -c –console, –nowindowed: 使用控制台,无界面(默认)
  • -p: 自定义需要加载的类路径
  • -i: 可执行文件的图标,其后面可以加上图片的路径
  • -D –onedir: 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)

这些参数可以直接加在命令的后面即可。

  打包程序有一点需要注意,那就是如果电脑上安装的包非常多,那么最后打包的执行程序体积也就越大,所以建议使用虚拟环境,具体操作可以查看这篇文章

  此外,通过这个模块打包的执行程序只能适用于win10,如果要在win7上运行,需要使用python3.8及以下的python版本。【参考链接

  如果项目中包含多个文件夹,且外面的文件需要import里面的文件,在使用时需要以文件夹名.文件名的方式。而如果文件夹里面的文件也有相互引用的话,也要以文件夹名.文件名这样的方式,而不是直接用相对路径。而且不需要使用sys.path.append()来添加子文件夹路径。不过里面的调用外面的目前还没研究明白,这种情况也比较少见。

  如果项目中调用了C语言编译生成的dll文件,那么在导出成执行程序时,一定要加上dll文件,这里是使用参数--add-data,要注意这后面的参数,以分号分隔,前面为需要添加的对象,后面是添加到的位置,二者要用引号,否则分号会被识别为命令的分隔!

在这里插入图片描述

  举个例子:某个项目结构如下所示:

|-- main.py
|-- dlls
|   |-- a.dll
|   |-- a1.dll
|   |-- dll.py
|   |-- other
`-------|-- b.dll
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

那么在main.py和dll.py中引用a.dll应该都以dlls/a.dll这样的路径来引用,b.dll都以dlls/other/b.dll这样的方式引用,即都以最外层文件夹作为参考。然后在导出时,就添加参数 --add-data "dlls/*;." --add-data "dlls/other/b.dll;." 没错,这里的DEST都是当前路径.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/630713
推荐阅读
相关标签
  

闽ICP备14008679号