首先在自己写好的python程序中创建一个setup.pyl,内容如下:
其中:auto_web.py里面有main函数。
然后在pycharm的终端中执行:
python setup.py build_ext --inplace
然后改一下pyd文件的名字,把 .xxxx. 中间的这一部分去掉,得到:
然后继续在终端中执行以下代码:
pyinstaller -F -w main.py
之后会在终端中显示生成成功的提示。
但是上面的方法打包的exe使用pyinstxtractor.py文件反编译后,没有看到pyd文件,只有pyc。exe程序和pyinstxtractor.py文件放在一起,打开CMD切换到该目录下,然后执行反编译的命令为:python pyinstxtractor.py auto_web.exe。转换编译exe程序的命令为:pyinstaller -F -w auto_web.pyd。此时会直接报错,执行不了。
注:打包的exe复制到其他的电脑执行时已经不需要重新安装python环境,因为打包的时候已经默认使用了python的解释器。以上是动态联编的方式,在有同名的pyd和py文件时,以上打包方法优先使用pyd文件进行打包。但是反编译之后好像并没有体现出这点。
使用另外一个不需要编译成pyd的py文件去调用pyd文件,这种就可以调用pyd文件。
补充:如果pyinstaller提示未安装无法打开什么的:思路是添加路径和重启一下,我添加了路径,但是不重启,也是不行。
补充:win7不支持3.8.8以上版本的打包(就测了3.8.8版本和3.10.7版本,3.8.8可以,3.10.7不行,具体可以在win7上安装环境看看,支持就能安装,不支持就不能安装)
补充:win7运行3.10.7打包的exe还会提示api-ms-win-core-path-l1-1-0.dll的错误,可以尝试把改文件放在python安装路径下打包。
win7qt+python的程序的时候,出现错误:connot load library python310.dll。错误解决:检查是否在项目的打包路径下放入正确的dll。如果正确,检查QT项目下的pro文件是否正确添加python路径。
换用python编译器之后,pyinstaller打包程序,使用selenium,会出现命令行窗口,这个需要修改这个环境下的server文件。