首页 > 解决方案 > cx_Freeze 如何避免软件包安装在 lib 文件夹中?

问题描述

当我构建安装程序并安装应用程序时,它会安装lib文件夹中的所有包,而我的代码是从当前目录中选择导入 not lib

如何使包与可执行文件位于同一目录中?

下面是我的脚本:

from cx_Freeze import setup, Executable 

buildOptions = dict(excludes = ["tkinter"], includes =["idna.idnadata"], optimize=1)

setup(name = "SoftwareGateway" , 
      version = "0.1" , 
      description = "" , 
      options =dict(build_exe = buildOptions),
      executables = [Executable("main.py", base = base)])

标签: pythonpython-2.7cx-freeze

解决方案


据我了解,您所要求的不能用cx_Freeze 5.1.1(当前版本)或5.1.0.

您可以使用以前的稳定版本cx_Freeze 5.0.2,它不会将包冻结到子目录lib中。要降级到此cx_Freeze版本,请运行

python -m pip install cx_Freeze==5.0.2

在一个cmd终端。

但是我实际上不明白为什么将包冻结到子目录中应该是一个无法克服的问题lib,除非是非常特殊的情况。我建议您lib通过使用__file__包的属性而不是更改cx_Freeze版本来让您的代码从子目录中选择导入。


推荐阅读