在py2exe中忽略library.zip

3 投票
1 回答
2950 浏览
提问于 2025-04-17 11:03

我需要一个可执行文件(.exe),这个文件可以从一个用户可以根据需要配置的文件中获取一些参数。因为我用Python写了脚本,所以我使用了py2exe来创建这个可执行文件。虽然我可以放一个叫settings.dat的配置文件来进行定制,但我觉得如果这个配置文件是一个Python文件(比如说settings.py),然后直接导入里面定义的变量会更好。

所以,settings.py不应该被包含在library.zip里面,我希望它能单独存在,用户可以进行配置。这可能吗?

有没有办法避免创建library.zip,而是把所有依赖文件放在一个子文件夹里?(这样我就可以把settings.py放在里面,因为settings.pyc是从它生成的,任何对settings.py的修改都会反映出来)

1 个回答

2

有没有办法避免创建 library.zip 文件,而是把所有依赖的文件放在一个子文件夹里?

可以的,只需要把 skip_archive 选项设置为 True

http://www.py2exe.org/index.cgi/ListOfOptions

补充说明:pyc 文件会放在原本应该放 zip 文件的同一个文件夹里。zipfile 这个关键词可以控制 zip 文件的路径。这样可以把文件放在子文件夹 foo 里:

setup(  
    ...

    zipfile="foo/bar.zip", 
    options={"py2exe": {"skip_archive": True}})

撰写回答