仅使用所需的库构建可执行文件?

Posted

技术标签:

【中文标题】仅使用所需的库构建可执行文件?【英文标题】:Build an executable with only the libraries wanted? 【发布时间】:2019-08-02 15:37:05 【问题描述】:

我正在使用cx_freeze 来构建独立的可执行文件。以下是此类setup.py 文件的示例。

import os
import sys
from cx_Freeze import setup, Executable

base = None
if sys.platform == 'win32':
    base = 'Win32GUI'
exe = [Executable("main.py")]
os.environ['TCL_LIBRARY'] = r'C:\\Users\\AppData\\Local\\Programs\\Python\\Python36\\tcl\\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\\Users\\AppData\\Local\\Programs\\Python\\Python36\\tcl\\tk8.6'
options = 
  'build_exe': 
    'includes': ['scipy.io', 'scipy.spatial.ckdtree'],
    'include_files': [r'C:\\Users\\dmurugesan\\AppData\\Local\\Programs\\Python\\Python36\\DLLs\\tcl86t.dll',
                      r'C:\\Users\\dmurugesan\\AppData\\Local\\Programs\\Python\\Python36\\DLLs\\tk86t.dll',
                      r'C:\\Users\\dmurugesan\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\'
                      r'pyqt5_tools\\platforms\\qwindows.dll'],
    'packages': ['pkg_resources._vendor', 'numpy', 'scipy', 'pydub', 'soundfile', 'cffi'],
  


setup(name="lTBA", version="0.4", description='To be added',
  options=options, executables=exe)

尽管在提到要包含的库列表之后,构建包含了环境中存在的所有库!我该如何克服这个问题?

【问题讨论】:

【参考方案1】:

您可以定义要排除的库:

'build_exe': 
    'excludes': ['library1_name', 'library2_name'], 
    # ...

【讨论】:

以上是关于仅使用所需的库构建可执行文件?的主要内容,如果未能解决你的问题,请参考以下文章

Python - 使用Pyinstaller将Python代码生成可执行文件

如何构建 PyQT 项目?

Android_二使用Termux编译Android平台所需的linux可执行文件指令之nmap

Android_二使用Termux编译Android平台所需的linux可执行文件指令之nmap

如何彻底剥离可执行文件

XCode 4.3.2 应用程序可执行文件缺少所需的架构。以下armv7至少之一