Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I bundle other files when using cx_freeze?

I'm using Python 2.6 and cx_Freeze 4.1.2 on a Windows system. I've created the setup.py to build my executable and everything works fine.

When cx_Freeze runs, it moves everything to the build directory. I have some other files that I would like included in my build directory. How can I do this? Here's my structure:

src\     setup.py     janitor.py     README.txt     CHNAGELOG.txt     helpers\         uncompress\             unRAR.exe             unzip.exe 

Here's my snippet:

setup

( name='Janitor',   version='1.0',   description='Janitor',   author='John Doe',   author_email='[email protected]',   url='http://www.this-page-intentionally-left-blank.org/',   data_files =        [ ('helpers\uncompress', ['helpers\uncompress\unzip.exe']),         ('helpers\uncompress', ['helpers\uncompress\unRAR.exe']),         ('', ['README.txt'])       ],   executables =       [       Executable\           (           'janitor.py', #initScript           )       ] ) 

I can't seem to get this to work. Do I need a MANIFEST.in file?

like image 671
Mridang Agarwalla Avatar asked Mar 31 '10 14:03

Mridang Agarwalla


1 Answers

Figured it out.

from cx_Freeze import setup,Executable  includefiles = ['README.txt', 'CHANGELOG.txt', 'helpers\uncompress\unRAR.exe', , 'helpers\uncompress\unzip.exe'] includes = [] excludes = ['Tkinter'] packages = ['do','khh']  setup(     name = 'myapp',     version = '0.1',     description = 'A general enhancement utility',     author = 'lenin',     author_email = '[email protected]',     options = {'build_exe': {'includes':includes,'excludes':excludes,'packages':packages,'include_files':includefiles}},      executables = [Executable('janitor.py')] ) 

Note:

  • include_files must contain "only" relative paths to the setup.py script else the build will fail.
  • include_files can be a list of string i.e a bunch of files with their relative paths
    or
  • include_files can be a list of tuples in which the first half of the tuple is the file name with the absolute path and the second half is the destination filename with the absolute path.

(When the lack of the documentation arises, consult Kermit the Frog)

like image 190
Mridang Agarwalla Avatar answered Sep 30 '22 21:09

Mridang Agarwalla