【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

那么在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都是当前路径.

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年9月2日
下一篇 2023年9月2日

相关推荐