【问题标题】:Pyinstaller excuding package from executable filePyinstaller 从可执行文件中排除软件包
【发布时间】:2022-01-17 17:14:38
【问题描述】:

需要在调用 pyinstaller 期间以某种方式创建 specfile 或使用某些命令,以便 pynput 包应该与其生成的可执行文件分离,但不要破坏它。

这个包是 LGPL 许可的,不能包含在 exe 文件中以用于某些合法的事情

a = Analysis(['app.py'],
             pathex=['.'],
             binaries=[('some_file.exe', '.')],
             datas=[...],
             hiddenimports=['pywinauto'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          name='some_name',
          exclude_binaries=True,
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='some_name')

有人知道怎么做吗?

【问题讨论】:

    标签: python module package pyinstaller


    【解决方案1】:

    使用--exclude-module 将排除您不想包含在 exe 中的任何模块或包。

    如果您不使用命令 --onefile,则不应将其包含在 exe 中,因为所有脚本最终都位于与 exe 分开的自己的文件夹中

    更多信息可以在他们的文档中找到。关于这个主题,你可以在what to bundle, where to search的“选项”下找到它

    【讨论】:

    • 不能排除,因为这个包不是可选的,如--exclude-module定义。所以我只需要它与exe分开;抱歉误导性问题:(
    • 还使用 pyi-archive_viewer 检查了 .exe 文件,并且在 PYZ-00.pyz pynput 中仍然列出
    猜你喜欢
    • 2014-02-07
    • 2016-08-01
    • 2021-07-12
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多