Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 14th, 2012  |  syntax: None  |  size: 1.60 KB  |  hits: 62  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. how to use distutils to create executable .zip file?
  2. my_package/
  3.   - setup.py
  4.   - src/
  5.       - __main__.py
  6.       - module1/
  7.       - module2/
  8.       - module3/
  9.        
  10. my_package-0.1.zip
  11.   - my_package-0.1/
  12.       - README.txt
  13.       - PKG_INFO
  14.       - src/
  15.           - __main__.py
  16.           - module1/
  17.           - module2/
  18.           - module3/
  19.        
  20. from distutils.core import setup
  21. from distutils.command.bdist_dumb import bdist_dumb
  22.  
  23. class custom_bdist_dumb(bdist_dumb):
  24.  
  25.     def reinitialize_command(self, name, **kw):
  26.         cmd = bdist_dumb.reinitialize_command(self, name, **kw)
  27.         if name == 'install':
  28.             cmd.install_lib = '/'
  29.         return cmd
  30.  
  31. if __name__ == '__main__':
  32.     setup(
  33.         # our custom class override
  34.         cmdclass = {'bdist_dumb': custom_bdist_dumb},
  35.         name='my_package',
  36.         py_modules = ['__main__'],
  37.         packages = ['module1', 'module2'],
  38.         package_dir = {'': 'src'}
  39.     )
  40.        
  41. % python setup.py bdist --format=zip
  42. % unzip -l dist/my_package-0.0.0.linux-x86_64.zip
  43. Archive:  dist/my_package-0.0.0.linux-x86_64.zip
  44.   Length      Date    Time    Name
  45. ---------  ---------- -----   ----
  46.       184  2011-05-31 20:34   my_package-0.0.0.egg-info
  47.        30  2011-05-31 20:34   __main__.py
  48.       128  2011-05-31 20:34   __main__.pyc
  49.       107  2011-05-31 20:34   module1/__init__.pyc
  50.         0  2011-05-31 20:27   module1/__init__.py
  51.       107  2011-05-31 20:34   module2/__init__.pyc
  52.         0  2011-05-31 20:27   module2/__init__.py
  53. ---------                     -------
  54.       556                     7 files
  55.  
  56. % python dist/my_package-0.0.0.linux-x86_64.zip
  57. my_package working.