| 1 | """ |
|---|
| 2 | PyInstaller is a program that converts (packages) Python programs into |
|---|
| 3 | stand-alone executables, under Windows, Linux, and Mac OS X. Its main |
|---|
| 4 | advantages over similar tools are that PyInstaller works with any |
|---|
| 5 | version of Python since 2.2, it builds smaller executables thanks to |
|---|
| 6 | transparent compression, it is fully multi-platform, and use the OS |
|---|
| 7 | support to load the dynamic libraries, thus ensuring full |
|---|
| 8 | compatibility. |
|---|
| 9 | |
|---|
| 10 | The main goal of PyInstaller is to be compatible with 3rd-party |
|---|
| 11 | packages out-of-the-box. This means that, with PyInstaller, all the |
|---|
| 12 | required tricks to make external packages work are already integrated |
|---|
| 13 | within PyInstaller itself so that there is no user intervention |
|---|
| 14 | required. You'll never be required to look for tricks in wikis and |
|---|
| 15 | apply custom modification to your files or your setup scripts. As an |
|---|
| 16 | example, libraries like PyQt, Django or matplotlib are fully |
|---|
| 17 | supported, without having to handle plugins or external data files |
|---|
| 18 | manually. |
|---|
| 19 | """ |
|---|
| 20 | |
|---|
| 21 | raise SystemExit("\nsetup.py is not yet supposed to work. " |
|---|
| 22 | "Please Use PyInstaller without installation.\n") |
|---|
| 23 | |
|---|
| 24 | from setuptools import setup, find_packages |
|---|
| 25 | |
|---|
| 26 | import platform |
|---|
| 27 | import itertools |
|---|
| 28 | import glob |
|---|
| 29 | import os |
|---|
| 30 | |
|---|
| 31 | scripts = [ |
|---|
| 32 | 'pyinstaller.py', |
|---|
| 33 | 'pyinstaller-gui.py', |
|---|
| 34 | 'utils/ArchiveViewer.py', |
|---|
| 35 | #'utils/BinDepend.py', |
|---|
| 36 | 'utils/Build.py', |
|---|
| 37 | 'utils/Configure.py', |
|---|
| 38 | #'utils/Crypt.py', |
|---|
| 39 | #'utils/GrabVersion.py', |
|---|
| 40 | 'utils/Makespec.py', |
|---|
| 41 | ] |
|---|
| 42 | |
|---|
| 43 | if platform.system() == "Windows": |
|---|
| 44 | scripts.append('MakeComServer.py') |
|---|
| 45 | |
|---|
| 46 | def find_data_files(*patterns): |
|---|
| 47 | data_files = {} |
|---|
| 48 | for fn in itertools.chain(*(glob.iglob(p) for p in patterns)): |
|---|
| 49 | if os.path.isfile(fn): |
|---|
| 50 | data_files.setdefault(os.path.dirname(fn), []).append(fn) |
|---|
| 51 | return data_files.items() |
|---|
| 52 | |
|---|
| 53 | setup( |
|---|
| 54 | name = 'pyinstaller', |
|---|
| 55 | version = '1.6.0dev', |
|---|
| 56 | scripts = scripts, |
|---|
| 57 | packages = find_packages(), |
|---|
| 58 | data_files = find_data_files('doc/*', |
|---|
| 59 | 'doc/images/*', 'doc/stylesheets/*.css', |
|---|
| 60 | 'support/*.py', 'support/rthooks/*.py', |
|---|
| 61 | 'support/loader/*', 'support/loader/*/*'), |
|---|
| 62 | author = "Gordon McMillan, William Caban, Giovanni Bajo and the PyInstaller team", |
|---|
| 63 | author_email = "pyinstaller@googlegroups.com", |
|---|
| 64 | maintainer = "Giovanni Bajo and the PyInstaller team", |
|---|
| 65 | maintainer_email = "pyinstaller@googlegroups.com", |
|---|
| 66 | description = "Converts (packages) Python programs into stand-alone executables, under Windows, Linux, and Mac OS X.", |
|---|
| 67 | long_description = __doc__, |
|---|
| 68 | license = ("GPL license with a special exception which allows to use " |
|---|
| 69 | "PyInstaller to build and distribute non-free programs " |
|---|
| 70 | "(including commercial ones)."), |
|---|
| 71 | keywords = "packaging, standalone executable, freeze", |
|---|
| 72 | url = "http://www.pyinstaller.org/", |
|---|
| 73 | download_url = "http://www.pyinstaller.org/wiki#Downloads", |
|---|
| 74 | zip_safe = False, |
|---|
| 75 | classifiers = [ |
|---|
| 76 | 'Development Status :: 6 - Mature', |
|---|
| 77 | 'Environment :: Console', |
|---|
| 78 | 'Intended Audience :: Developers', |
|---|
| 79 | 'License :: OSI Approved :: GNU General Public License (GPL)', |
|---|
| 80 | 'Natural Language :: English', |
|---|
| 81 | 'Operating System :: MacOS :: MacOS X', |
|---|
| 82 | 'Operating System :: Microsoft :: Windows', |
|---|
| 83 | 'Operating System :: POSIX', |
|---|
| 84 | 'Operating System :: POSIX :: Linux', |
|---|
| 85 | 'Programming Language :: Python :: 2.3', |
|---|
| 86 | 'Programming Language :: Python :: 2.4', |
|---|
| 87 | 'Programming Language :: Python :: 2.5', |
|---|
| 88 | 'Programming Language :: Python :: 2.6', |
|---|
| 89 | 'Programming Language :: Python :: 2.7', |
|---|
| 90 | 'Programming Language :: C', |
|---|
| 91 | 'Topic :: Software Development :: Build Tools', |
|---|
| 92 | 'Topic :: System :: Software Distribution', |
|---|
| 93 | ] |
|---|
| 94 | ) |
|---|