惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
IT之家
IT之家
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
小众软件
小众软件
博客园 - 叶小钗
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
罗磊的独立博客
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理

博客园 - 隐客

商品期权的保证金计算 写个chrome插件屏蔽某些视频,防止孩子看些不正常的视频 获取个股信息的东财数据 AI量化qlib学习笔记四:测试模型 AI量化qlib学习笔记三:训练模型 AI量化qlib学习笔记二:转换数据 AI量化qlib学习笔记 一:清洗数据 python: 与通达信联动 随手写了街机一键发招的代码 使用pybind11封装c++的dll,供python调用 用py-spy对python线程查看cpu等资源 占用和消耗 通过selenium获取性能日志中的response的body Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件 vscode 扩展商店打不开的解决办法 通过1分钟生成其它线的bar配置文件 用numpy读取结构化二进制文件 微信pc防撤回修改笔记 关于在python中时间的转换 把本地vscode项目代码传到gitee上
python 打包工具
隐客 · 2025-07-21 · via 博客园 - 隐客

看了两个,Nuitka‌ 比较猛,但有些库的兼容性不好,还是用PyInstaller了

PyInstaller‌ 支持跨平台,单文件/文件夹模式 简单项目快速打包
‌Nuitka‌ 编译为C代码,性能更高 需要加密或优化的项目‌

1、那就先把py变成pyd

from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules=cythonize("T.py"))

运行  python setup.py build_ext --inplace   ,记得先安装 cython

2、打包:

先写个配置文件main.spec

模板如下:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(
    ['main.py'],
    pathex=['.'],
    binaries=[
        # 加入你需要的 DLL 文件
        ('py_dll/lib64/xx.dll', 'py_dll/lib64'),
         ('T.pyd', '.'),
        # 如果还有其他 DLL,可继续添加
        # ('py_dll/lib64/xxx.dll', 'py_dll/lib64'),
    ],
    datas=[
        # 包含 py_dll 模块代码
        ('py_dll/*.py', 'py_dll'),
        ('py_dll/lib64/*.dll', 'py_dll/lib64'),

 
    ],
    hiddenimports=['tkinter', 'tkinter.ttk'],
    hookspath=[],
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
)

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='main',  # 替换为你希望生成的程序名
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=True,  # 设置为 False 可隐藏命令行窗口
)

coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    name='main'
)

运行pyinstaller main.spec  ,记得先安装 pyinstaller 

真棒!