Cx_freeze bdist_msi 目录语法?如何解读 'directory_table'
Cx_freeze bdist_msi directories syntax? how to interpret 'directory_table'
我在使用 cx_freeze 生成的 MSI 创建新目录时遇到问题。我不理解 windows direcotry_tables 对象,几乎没有文档解释它。有人成功过吗?
这里是 cx_freeze bdist_msi.
的安装脚本文档
https://cx-freeze.readthedocs.io/en/latest/setup_script.html#commands
关于 'directory tables'
的类似 windows 文档
https://docs.microsoft.com/en-us/windows/win32/msi/directory-table?redirectedfrom=MSDN
我希望我的安装程序在 C:\ProgramData 中创建一个目录,但我不知道要在“directory_table”3 元组中使用什么参数来执行此操作。下面是默认的示例目录 table,它没有错误,但我不确定该目录实际放在哪里。
directory_table = [
("ProgramMenuFolder", "TARGETDIR", "."),
("MyProgramMenu", "ProgramMenuFolder", "MYPROG~1|My Program"),]
希望之前有人 运行 对此有所了解,感谢您的帮助。
下面是我的 setup.py:
from cx_Freeze import setup, Executable
import sys
company_name = 'MyCompany'
product_name = 'TestTKApp'
#list of 3-tuples. need help here.
directory_table = [
("ProgramMenuFolder", "TARGETDIR", "."),
("MyProgramMenu", "ProgramMenuFolder", "MYPROG~1|My Program"),]
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
build_exe_options = {"includes": ["testmath"],
"path" : sys.path,
"include_files": [(r"PATH\TO\SOME\FILE","junk.txt")],
}
bdist_msi_options = {
# 'upgrade_code': '{66620F3A-DC3A-11E2-B341-002219E9B01E}',
'add_to_path': False,
'initial_target_dir': r'C:\ProgramFiles\%s\%s' % (company_name, product_name),
'target_name' : 'TestTKapp Installer',
'directories' : directory_table,
"summary_data": {"author": "Me",
"comments": "Test TKapp",}
}
setup(name='Test Dist App',
version = ' 1.0.0',
executables = [Executable(r"C:\PATH\TO\MY\APP\TestTKAPP.py", base = "Win32GUI")],
options={'bdist_msi': bdist_msi_options,
'build_exe': build_exe_options},
)
最终使用 Inno 脚本创建了我的 MSI。仍然想知道如何处理 with cx_freeze.
请在此处查看有关 inno 脚本的文档。构建 windows 个安装程序的过程要简单得多:
https://jrsoftware.org/isdl.php
总结(如何构建 python exe);
- 使用
pipreqs
为我的项目创建一个 requirements.txt
- 用那个requirments.txt
构建虚拟环境
- 创建一个
cx_freeze
setup.py 脚本来创建 MyApp.exe
- 运行
cx_freeze
setup.py 来自我的虚拟环境
- 使用 Inno 脚本为 MyApp.exe
创建 windows 安装程序 (msi)
我在使用 cx_freeze 生成的 MSI 创建新目录时遇到问题。我不理解 windows direcotry_tables 对象,几乎没有文档解释它。有人成功过吗?
这里是 cx_freeze bdist_msi.
的安装脚本文档https://cx-freeze.readthedocs.io/en/latest/setup_script.html#commands
关于 'directory tables'
的类似 windows 文档https://docs.microsoft.com/en-us/windows/win32/msi/directory-table?redirectedfrom=MSDN
我希望我的安装程序在 C:\ProgramData 中创建一个目录,但我不知道要在“directory_table”3 元组中使用什么参数来执行此操作。下面是默认的示例目录 table,它没有错误,但我不确定该目录实际放在哪里。
directory_table = [
("ProgramMenuFolder", "TARGETDIR", "."),
("MyProgramMenu", "ProgramMenuFolder", "MYPROG~1|My Program"),]
希望之前有人 运行 对此有所了解,感谢您的帮助。 下面是我的 setup.py:
from cx_Freeze import setup, Executable
import sys
company_name = 'MyCompany'
product_name = 'TestTKApp'
#list of 3-tuples. need help here.
directory_table = [
("ProgramMenuFolder", "TARGETDIR", "."),
("MyProgramMenu", "ProgramMenuFolder", "MYPROG~1|My Program"),]
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
build_exe_options = {"includes": ["testmath"],
"path" : sys.path,
"include_files": [(r"PATH\TO\SOME\FILE","junk.txt")],
}
bdist_msi_options = {
# 'upgrade_code': '{66620F3A-DC3A-11E2-B341-002219E9B01E}',
'add_to_path': False,
'initial_target_dir': r'C:\ProgramFiles\%s\%s' % (company_name, product_name),
'target_name' : 'TestTKapp Installer',
'directories' : directory_table,
"summary_data": {"author": "Me",
"comments": "Test TKapp",}
}
setup(name='Test Dist App',
version = ' 1.0.0',
executables = [Executable(r"C:\PATH\TO\MY\APP\TestTKAPP.py", base = "Win32GUI")],
options={'bdist_msi': bdist_msi_options,
'build_exe': build_exe_options},
)
最终使用 Inno 脚本创建了我的 MSI。仍然想知道如何处理 with cx_freeze.
请在此处查看有关 inno 脚本的文档。构建 windows 个安装程序的过程要简单得多:
https://jrsoftware.org/isdl.php
总结(如何构建 python exe);
- 使用
pipreqs
为我的项目创建一个 requirements.txt - 用那个requirments.txt 构建虚拟环境
- 创建一个
cx_freeze
setup.py 脚本来创建 MyApp.exe - 运行
cx_freeze
setup.py 来自我的虚拟环境 - 使用 Inno 脚本为 MyApp.exe 创建 windows 安装程序 (msi)