Python 如何在cxfreeze安装程序中包含子目录中的文件

Python 如何在cxfreeze安装程序中包含子目录中的文件,python,packaging,cx-freeze,Python,Packaging,Cx Freeze,我已经创建了一个cxfreeze\u setup.py文件并运行该命令 python cxfreeze\u setup.py build\u exe cxfreeze\u setup.py包含以下内容: #!/usr/bin/env python # -*- coding: utf-8 -*- # Python 3 compatibility from __future__ import (absolute_import, division, print_function,

我已经创建了一个cxfreeze\u setup.py文件并运行该命令 python cxfreeze\u setup.py build\u exe

cxfreeze\u setup.py包含以下内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Python 3 compatibility
from __future__ import (absolute_import, division, print_function,
                        unicode_literals)

import sys
from cx_Freeze import setup, Executable

from daysgrounded.globalcfg import NAME, VERSION, DATA_FILES
from daysgrounded import (DESC, LICENSE, URL, KEYWORDS, CLASSIFIERS)

AUTHOR = 'Joao Matos'
SCRIPT = NAME + '/__main__.py'
TARGET_NAME = NAME + '.exe'

base = None
# GUI applications require a different base on Windows
if sys.platform == 'win32':
    base = 'Win32GUI'

build_exe_options = dict(compressed=True,
                         include_files=['AUTHORS.txt',
                                        'CHANGES.txt',
                                        'LICENSE.txt',
                                        'README.txt',
                                        'README.rst',
                                        NAME],
                        )

setup(name=NAME,
      version=VERSION,
      description=DESC,
      long_description=open('README.txt').read(),
      #long_description=(read('README.txt') + '\n\n' +
      #                  read('CHANGES.txt') + '\n\n' +
      #                  read('AUTHORS.txt')),
      license=LICENSE,
      url=URL,
      author=AUTHOR,
      author_email='jcrmatos@gmail.com',

      keywords=KEYWORDS,
      classifiers=CLASSIFIERS,

      executables=[Executable(script=SCRIPT,
                              base=base,
                              compress=True,
                              targetName=TARGET_NAME,
                             )],

      options=dict(build_exe=build_exe_options),
     )
构建工作正常,但我希望将NAME子目录中的*.txt文件包含在创建exe的同一目录中。 include_文件只允许我包含子目录(不移动文件)

我想要的最终结果与使用“普通”构建命令(如 python setup.py sdist bdist\u egg bdist\u wininst bdist\u wheel 使用setup.py选项完成此操作

include_package_data=True
package_data=dict(daysgrounded=['usage.txt', 'LICENSE.txt', 'banner.txt'])
和MANIFEST.in的文件

include daysgrounded\banner.txt
include daysgrounded\LICENSE.txt
include daysgrounded\usage.txt
谢谢


JM

如果我理解正确,您希望执行以下操作

构建目录/路径到文件/somefile.txt

DEST_DIR/somefile.txt

其中dest dir还包含{program}.exe

使用如下所示的include_文件尝试以下操作:

include_files = 
   [
    ('path_to_file/somefile.txt', 'somefile.txt'),
    ('path_to_file/otherfilename.txt, 'newfilename.txt)
   ]
第二行演示通过更改第二个名称重命名文件

如果我正确理解上述描述,这是特定于示例的:

include_files=[
    ('daysgrounded/AUTHORS.txt','AUTHORS.txt'),
    ('daysgrounded/CHANGES.txt','CHANGES.txt'),
    ('daysgrounded/LICENSE.txt','LICENSE.txt'),
    ('daysgrounded/README.txt','README.txt'),
    ('daysgrounded/README.rst','README.rst'),
    NAME],