如何让py2exe构建版权信息

时间:2014-03-13 20:22:51

标签: python windows exe py2exe

我正在使用Py2exe从我的Python脚本创建Windows .exe。我想拥有版权信息以及产品版本,描述等。我已经能够显示所有内容(在属性> exe的详细信息中),版权信息除外。我试过以下但没有成功:

from distutils.core import setup
import py2exe
import sys

if len(sys.argv) == 1:
    sys.argv.append("py2exe")
    sys.argv.append("-q")

class Target:
    def __init__(self, **kw):
        self.__dict__.update(kw)
        # for the versioninfo resources
        self.version = "1.0.0.0"
        self.company_name = "ACME."
        self.copyright = "Copyright (c) 2014 ACME."
        self.name = "My Program"

# create an instance of class Target
# and give it additional needed info
target = Target(
    description = "Test Description",
    # this is your code file
    script = "Main.py",
    # this will form TestProgram.exe
    dest_base = "TestProgram")

setup(
    options = {'py2exe': {'bundle_files': 1,
                          'compressed': 1}},
    console = [{'script': "Main.py"}],
    zipfile = None,
)

使用此方法时,我会在PROPERTIES>中获得文件描述,产品名称和产品版本。 .exe的详细信息,但我没有版权。

3 个答案:

答案 0 :(得分:5)

我得到以下工作。我意识到我没有把目标设定为正确。固定在我做console = [target]的底部。

from distutils.core import setup
import py2exe
import sys

if len(sys.argv) == 1:
    sys.argv.append("py2exe")
    sys.argv.append("-q")

class Target:
    def __init__(self, **kw):
        self.__dict__.update(kw)
        self.version = "1.0.0.0"
        self.company_name = "ACME."
        self.copyright = "Copyright (c) 2014 ACME."
        self.name = "My Program"

target = Target(
    description = "Test Description",
    script = "Main.py",
    dest_base = "TestProgram")

setup(
    options = {'py2exe': {'bundle_files': 1,
                          'compressed': True}},
    zipfile = None,
    console = [target]
)

答案 1 :(得分:3)

user2643864的答案比它需要的更复杂。 jgritty的答案几乎就在那里,只需要简单的修改,在分配给console的字典中添加几个条目:

from distutils.core import setup
import py2exe

setup(
    options = {'py2exe': {'bundle_files': 1,
                          'compressed': 1}},
    console = [{
        'script': 'Main.py',
        'copyright': 'Copyright (C) 2016 ACME Pty Ltd',
        'company_name': 'ACME Pty Ltd',
    }],
    zipfile = None,
    version = '1.0.0.0',
    name = 'My Program',
    description = 'Test Description',
)

答案 2 :(得分:1)

我认为您的代码存在问题,因为它没有更新exe中的文件描述,产品名称和产品版本。但是,此代码确实:

from distutils.core import setup
import py2exe

setup(
    options = {'py2exe': {'bundle_files': 1,
                          'compressed': 1}},
    console = [{'script': "Main.py"}],
    zipfile = None,
    version = "1.0.0.0",
    name = "My Program",
    description = "Test Description",
)

将公司名称和版权信息放入可执行文件更具挑战性,不幸的是,我还不知道如何做到这一点。 This可能有用。