python2.7:
d:\python27\python.exe -m pip install --upgrade pip
d:\python27\python.exe -m pip install PyInstaller
d:\python27\python.exe -m PyInstaller clock.py
python3.7:
d:\python37\python.exe -m pip install --upgrade pip
d:\python37\python.exe -m pip install PyInstaller
d:\python37\python.exe -m PyInstaller clock.py
整个 dist 目录就是你需要的文件了
离线
顶一下。
楼主给出的代码方法虽然很基础,但非常实用,估计py2与py3共存的才能体会到。
我的做法是
将py3对应的pyinstaller文件名修改为pyinstaller3.exe,对应的也要将pyinstaller-script.py修改为pyinstaller3-script.py
离线
打包后移植到另一台干净的电脑上,还是无法执行,在本机可以执行,怎么检查依赖项????
离线
还有打包文件过大,一般如何精减呢??
离线
我写的上位机,也用了这个打包器,图形库是ptqt5,其中有部分交互是用H5做的用到了webengineview
最后打包出来的整个文件有200多M,看了下py5core有20M,webengine有90M,不知道该怎么缩小体积
离线
pyinstaller的东西很难精简体积,因为他会把所有有可能用到的模块都打包进去。
唯一的方案就是upx压缩了,不过好在upx也是跨平台的,可以部分解决体积过大的问题。
离线
我写的上位机,也用了这个打包器,图形库是ptqt5,其中有部分交互是用H5做的用到了webengineview
最后打包出来的整个文件有200多M,看了下py5core有20M,webengine有90M,不知道该怎么缩小体积
这大概只能换UI库了,没有复杂UI的话用Python自带的Tkinter就很小。
离线
我用的命令一般是:
pyinstaller -w -F my.py
-w 不弹终端窗口
-F 强制打包为一个独立的exe文件,将依赖也八宝进去,这样就可以将exe文件移到别的电脑上使用了。
离线
在ubuntu下用pyinstaller打包程序报错。
是用的venv创建的python3.8环境,pip安装了pyside2,写了个最简单的窗口。
在main.py目录下执行pyinstaller -F main.py。可以打包成功,但是运行dist目录下的main文件,报错:
$ ./main
PySide2/__init__.py: Unable to import shiboken2 from /home/any/Python/PySide/PahoMqttPyside/dist/main/base_library.zip, /home/any/Python/PySide/PahoMqttPyside/dist/main
Traceback (most recent call last):
File "main.py", line 1, in <module>
File "/home/any/Python/PySide/PySideEnv/lib/python3.8/site-packages/PyInstaller/loader/pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.__dict__)
File "PySide2/__init__.py", line 107, in <module>
File "PySide2/__init__.py", line 58, in _setupQtDirectories
File "/home/any/Python/PySide/PySideEnv/lib/python3.8/site-packages/PyInstaller/loader/pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.__dict__)
File "shiboken2/__init__.py", line 27, in <module>
ImportError: libshiboken2.abi3.so.5.15: cannot open shared object file: No such file or directory
[8123] Failed to execute script main
提示找不到shiboken库文件,实际上用pip安装了。
网上搜了下,有说需要用-p来指定路径,试了,结果依旧。
离线