WhyCan Forum(哇酷开发者社区)

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2019-02-12 19:02:40

pythinker
会员
注册时间: 2019-02-12
累计积分: 199

Python 发布应用程序, 将脚本转化为可执行程序

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 目录就是你需要的文件了

离线

#2 2019-02-13 11:06:47

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 262

Re: Python 发布应用程序, 将脚本转化为可执行程序

顶一下。

楼主给出的代码方法虽然很基础,但非常实用,估计py2与py3共存的才能体会到。

我的做法是
将py3对应的pyinstaller文件名修改为pyinstaller3.exe,对应的也要将pyinstaller-script.py修改为pyinstaller3-script.py

离线

#3 2020-06-08 21:06:27

terry_tu
会员
注册时间: 2020-06-08
累计积分: 7

Re: Python 发布应用程序, 将脚本转化为可执行程序

打包后移植到另一台干净的电脑上,还是无法执行,在本机可以执行,怎么检查依赖项????

离线

#4 2020-06-08 21:09:29

terry_tu
会员
注册时间: 2020-06-08
累计积分: 7

Re: Python 发布应用程序, 将脚本转化为可执行程序

还有打包文件过大,一般如何精减呢??

离线

#5 2020-06-08 21:57:28

ma6254
会员
注册时间: 2019-11-03
累计积分: 35

Re: Python 发布应用程序, 将脚本转化为可执行程序

我写的上位机,也用了这个打包器,图形库是ptqt5,其中有部分交互是用H5做的用到了webengineview
最后打包出来的整个文件有200多M,看了下py5core有20M,webengine有90M,不知道该怎么缩小体积

离线

#6 2020-07-05 00:54:36

a_Cylinder
会员
注册时间: 2020-07-05
累计积分: 3

Re: Python 发布应用程序, 将脚本转化为可执行程序

pyinstaller的东西很难精简体积,因为他会把所有有可能用到的模块都打包进去。
唯一的方案就是upx压缩了,不过好在upx也是跨平台的,可以部分解决体积过大的问题。

离线

#7 2020-07-05 01:34:29

Quotation
会员
注册时间: 2018-10-04
累计积分: 238

Re: Python 发布应用程序, 将脚本转化为可执行程序

ma6254 说:

我写的上位机,也用了这个打包器,图形库是ptqt5,其中有部分交互是用H5做的用到了webengineview
最后打包出来的整个文件有200多M,看了下py5core有20M,webengine有90M,不知道该怎么缩小体积

这大概只能换UI库了,没有复杂UI的话用Python自带的Tkinter就很小。

离线

#8 2020-07-10 18:02:59

如意如意
会员
注册时间: 2020-07-10
累计积分: 30

Re: Python 发布应用程序, 将脚本转化为可执行程序

我用的命令一般是:
pyinstaller -w -F my.py
-w 不弹终端窗口
-F  强制打包为一个独立的exe文件,将依赖也八宝进去,这样就可以将exe文件移到别的电脑上使用了。

离线

#9 2020-11-10 14:35:30

Gentlepig
会员
注册时间: 2018-10-24
累计积分: 543

Re: Python 发布应用程序, 将脚本转化为可执行程序

在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来指定路径,试了,结果依旧。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB