这次继续以下内容:

  • 去掉命令行
  • 指定密码来增加反编译难度
  • 指定可执行文件名
  • 设置图标
  • 清空上一次编译生成的各种文件

去掉命令行:

交给客户的产品,当然不能有命令行,除非特殊需要。

有一点你要知道:命令行这个只会出现在windows系统下

在windows下,pyinstaller 打包命令只需加个 -w 就能去掉了!这次我们进入demo.py目录,输入 pyinstaller -w demo.py 即可,这一次没看见命令行了。

python反编译so工具pip 反编译pyinstaller_开发语言

 指定密码来增加反编译难度:

pyinstaller 命令里得 --key 用于加密Python字节码的密钥,来增加反编译的难度。

这次我们进入demo.py目录,输入 pyinstaller -w --key #@!#@!# demo.py,执行后出现提示

python反编译so工具pip 反编译pyinstaller_pycharm_02

需要安装tinyaes,那么输入 pip install tinyaes 安装.

我使用了清华源,你可以使用 -i 在本次使用: pip install tinyaes -i  https://pypi.tuna.tsinghua.edu.cn/simple

python反编译so工具pip 反编译pyinstaller_开发语言_03

安装完后继续输入刚才的命令执行。运行跟刚才一样没什么问题!

python反编译so工具pip 反编译pyinstaller_命令行_04

指定可执行文件名:

也许你不希望是这个默认的名字作为可执行文件名,那么使用 -n 即可。

这次我们进入demo.py目录,输入 pyinstaller -w --key #@!#@!# -n mydemo demo.py 执行。

dist目录出现一个新的mydemo的文件夹

python反编译so工具pip 反编译pyinstaller_pycharm_05

进去看看,可执行文件已经更名为 mydemo.exe,运行效果不变。

python反编译so工具pip 反编译pyinstaller_python反编译so工具pip_06

 设置图标

桌面应用程序,别人都有自己的图标。那么使用 -i 指定图标路径。

使用ico格式,但是你要知道仅对 Windows 有效。

那么准备一个ico格式的图标,路径在 C:\Users\Admin\Pictures\b2.ico

python反编译so工具pip 反编译pyinstaller_python_07

这次我们进入demo.py目录,输入 pyinstaller -w --key #@!#@!# -n mydemo -i C:\Users\Admin\Pictures\b2.ico demo.py 执行。我们的命令越来越多了,但只要明白每个参数的意义就不怕。

进入dist的mydemo目录看下,可执行文件的图标,竟然没变,不科学。

python反编译so工具pip 反编译pyinstaller_pycharm_08

其实已经没问题了,你把这个文件夹整个拷贝到桌面,进入看一下,果然变了。为啥,我认为是windows对图标缓存导致的,并未深究。

python反编译so工具pip 反编译pyinstaller_python_09

清空上一次编译生成的各种文件:

那么 --clean 和 -y 就上场了。

--clean  在本次编译开始时,清空上一次编译生成的各种文件。即清空build目录里的文件。

-y   如果dist文件夹内已经存在生成文件,则不询问用户直接覆盖。

所以一个是 --clean是对buid文件夹,-y是对dist文件夹。

细心的同学在打包“设置图标”就注意到了,命令执行后,pyinstaller会询问你是否覆盖上次的结果,让你输入y或n来决定。

这次我们进入demo.py目录,输入 pyinstaller --clean -y -w --key #@!#@!# -n mydemo -i C:\Users\Admin\Pictures\b2.ico demo.py 执行,结果跟上次的一样。

好,本次的介绍就完了。

下一节,我们继续讲解:当你有多个虚拟环境时如何指定python导入模块的路径。