Python-打包器选择-Pyinstaller&Py2exe&Nuitka

发布于:2024-06-12 ⋅ 阅读:(126) ⋅ 点赞:(0)

目录

1-pyinstaller

安装:

打包: 

2-py2exe

安装:

打包:

​编辑

setup.py

3-Nuitka

安装:

详细用法:

打包: 


1-pyinstaller

安装:

pip install pyinstaller 


 

-F,     -onefile   **打包一个单个文件**,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用

-D,    -onedir打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,比较推荐这样,代码易于维护.

-K,    -tKk在部署时包含TCL/TK

-a,    -ascii不包含编码在支持Unicode的python版本上默认包含所有的编码

-d,    -debug产生debug版本的可执行文件

-w,    -windowed-noconsole  使用Windows子系统执行.当程序启动的时候**不会打开命令行**(只对Windows有效).

-c,    -nowindowed-console使用控制台子系统执行(默认)(只对Windows有效)


打包: 

使用:pyinstaller -F test.py
-F    
-W        --不显示黑窗口了
------->test.exe


2-py2exe

安装:

pip install py2exe

打包:

python setup.py py2exe

打包时需要借助setup.py脚本,(要将打包的文件名写在脚本里面)

----脚本和打包的文件都放到py2exe目录下.

最后在py2exe目录下执行命令.

setup.py

from distutils.core import setup
import py2exe

INCLUDES = ['test']    #此为打包文件的名字.

options = {
    "py2exe" :
        {
            "compressed" : 1, # 压缩
            "optimize" : 2,
            "bundle_files" : 1, # 所有文件打包成一个 exe 文件
            "includes" : INCLUDES,
            "dll_excludes" : ["MSVCR100.dll"]
        }
}


setup(
    options=options,
    description = "this is a py2exe test",
    zipfile=None,
    console = [{"script":'test.py'}]    #这是打包文件的名字.py
)
# options = {
#     "py2exe":
#         {
#             "compressed": 1,  # 0或1,1压缩,0不压缩
#             "optimize": 2,  # 0、1、2,文件的优化级别
#             "bundle_files": 1,  # 1、2、3,1表示所有文件打包成一个exe文件,2表示除了Python的解释器外都绑定,3表示不绑定
#             "includes": INCLUDES,  # 列表,包含其它的一些模块
#             "dll_excludes": ['MSVCP90.dll']  # 列表,包含的dll文件不会打包进exe程序
#         }
# }
# setup(
#     version='1.0.0',
#     options=options,
#     description="this is a test file",
#     zipfile=None,  # 公用文件的压缩文件名称,默认为“library.zip”;如果没有,则会将这些文件放在最终的exe文件中
#     console=[{"script": 'base642.py'}]  # 生成一个控制台形式的exe程序,对应的有windows=[],生成GUI形式的exe程序
# )

 


3-Nuitka

安装:

pip install -U nuitka

详细用法:

Python 打包工具 Nuitka 入门指南-CSDN博客


 

--standalone:方便移植到其他机器,不用再安装python

--show-memory--show-progress:展示整个安装的进度过程

--nofollow-imports:不编译代码中所有的import

--follow-import-to=utilssrc:需要编译成C++代码的指定的2个包含源码的文件夹,这里用来进行分隔。

--output-dir=out:指定输出的结果路径为out。

--windows-disable-console:运行exe取消弹框。

-mingw64 #默认为已经安装的vs2017去编译,否则就按指定的比如mingw(官方建议)

--standalone独立环境,这是必须的(否则拷给别人无法使用)

--windows-disable-console没有CMD控制窗口

--output-dir=out生成exe到out文件夹下面去

--show-progress显示编译的进度,很直观

--show-memory显示内存的占用

打包: 

正常用法:

nuitka test.py 

---->test.exe  等等



网站公告

今日签到

点亮在社区的每一天
去签到