cx_Freeze 包含依赖的 py 文件
Posted
技术标签:
【中文标题】cx_Freeze 包含依赖的 py 文件【英文标题】:cx_Freeze to include dependent py files 【发布时间】:2018-12-12 06:53:08 【问题描述】:我正在使用以下安装文件为 python 应用程序创建安装程序
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)])
安装文件自己获取依赖项,但在我的情况下,main.py
使用子进程调用调用另一个 python 程序fun.py
。当我运行setup.py
时,fun.py
既没有被编译,也没有在安装后进入目录。
有没有办法可以将fun.py
编译为字节码并将其与安装程序一起打包?
【问题讨论】:
【参考方案1】:尝试在您的main.py
中添加import fun
并使用fun.__file__
在您的子进程调用中获取已编译乐趣的正确位置(假设fun.py
与main.py
在同一目录中)。这应该可以满足您的要求。
但是为什么不简单地将fun.py
的内容打包成一个函数并调用这个函数而不是子进程调用呢?
【讨论】:
我同意你将它们称为函数而不是子进程,但代码是由其他人开发的,我只是为其创建安装程序。目前我无权修改现有代码。以上是关于cx_Freeze 包含依赖的 py 文件的主要内容,如果未能解决你的问题,请参考以下文章
Python cx_Freeze - 一个可执行文件不打开另一个?
使用 cx_freeze 将脚本转换为 .exe 时如何包含 tkinter?