猿问

如何禁用cx_freeze自动检测所有模块

cx_freeze构建包含我的计算机上安装的所有模块,因此冻结的构建变得非常庞大。如何禁用自动检测功能?我只想构建一个小的PyQt应用程序:


import sys

from cx_Freeze import setup, Executable


path = sys.path + ["app"]

includes = ["app.core", "app.utils"]

excludes = ["tcl"]

build_exe_options = {

"path": path,

"icon": "resources\icons\clock.ico"}


base = None

if sys.platform == "win32":

    base = "Win32GUI"


setup(  name = "app",

        version = "1.1",

        description = "My Application",

        options = {"build_exe": build_exe_options},

        executables = [Executable("app.py", base=base,

            targetName="app.exe",

            shortcutName="Application",

            shortcutDir="DesktopFolder")])

另外我有我的自定义模块,每个模块都有一个utils子模块,因此cx_freeze放错了模块。


如何设置我需要的严格模块清单?


开满天机
浏览 165回答 1
1回答

眼眸繁星

这很简单。此应用程序使用自定义模块,因此我已将应用程序文件夹添加到路径中:path = sys.path + ["app"]诀窍是应用程序使用模块“ utils”,而我的操作系统路径中还有其他“ utils”模块。其他“ utils”模块导入了很多东西,例如matplotlib,PIL等。因此,我通过更改如下路径环境解决了问题:path = ["app"] + sys.path因此,当冻结可执行文件时,cx_freeze会获取正确的模块。
随时随地看视频慕课网APP

相关分类

Python
我要回答