簡體   English   中英

如何為py2exe發行版創建清單文件?

[英]How can I create a manifest file for my py2exe distribution?

我正在使用py2exe分發python應用程序。 解壓縮后,除主exe文件外,該發行版還包含一些dll,配置文件等。我想添加一個清單文件以包含在發行版中。 該文件將列出所有必需的文件(dll,配置文件)以及每個文件的某種加密哈希,因此,如果文件被篡改,則主可執行文件將無法運行。

我可以編寫一個腳本在生成過程中生成文件,然后在運行應用程序時從python中檢查該文件。 但是,這似乎應該是一件很平常的事情,那么有沒有什么工具可以完成這項工作呢?

盡管在線上可能有可用的工具來執行此操作,但您可能只需要向python編譯器程序中添加一些代碼即可。 該解決方案可能不是最佳或最干凈的解決方案,但它應該可以工作。 您可以通過以非zip格式編譯一次並列出文件來找出將創建哪些dll文件和類似的依賴項。 比起您可以在python程序前添加代碼來檢查這些文件是否存在,然后使用修改后的python程序(仍然沒有zipfile)再次對其進行編譯。 然后,您可以在dist目錄中創建一個索引文件,在該目錄中可以找到所有依賴項,方法是將一個字符串打印到以寫方式打開的新文件中,然后可以使用python模塊zipfile手動壓縮該目錄。

您可能想要的一種更簡單的選擇就是將所有這些依賴項捆綁到一個exe文件中。 您可以像這樣進行操作,這其中包含許多額外的選項,可以在原始輸入中添加到exe文件:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
    windows = [{'script': raw_input("input filename: "),
                "icon_resources": [(1, raw_input("iconfilename: "))]
                }],
    name = raw_input("enter program name: "),
    version = raw_input("enter version: "),
    description = raw_input("enter description: "),
    author = raw_input("enter author: "),
    author_email = raw_input("enter author email: "),
    maintainer = raw_input("enter maintainer: "),
    maintainer_email = raw_input("enter maintainer email: "),
    url = raw_input("enter url: "),
    zipfile = None,
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM