Skip to main content

Extension to setuptools to run your package through nuitka to produce compiled, faster, obfuscated binary modules.

Nuitka [http://nuitka.net/pages/overview.html] is a python compiler with full language support and CPython compatibility.

It’s fully compatible with Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, and 3.6.

You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.

This module provides some hooks to add to your python packages setup.py to automatically run some/all of your code through nuitka when building a binary dist. This will typically be done with python setup.py bdist_wheel to create a wheel for distribution.

With nuitka-setuptools this wheel can be devoid of pure python and only contain compiled code which is not only faster (quote: Nuitka is more than 2 times faster than CPython) but has a relatively high level of code security.

Basic Usage: setup.py:

import sys
from setuptools import setup

# Get the long description from the README file
with open(path.join(path.dirname(__file__), 'README.rst'), 'r') as f:
    long_description = f.read()

packages = ['mod', 'pkg']

if any('bdist' in arg for arg in sys.argv):
    from nuitka_setuptools import Nuitka, Compile

    build_settings = dict(
        # Compile module
        cmdclass={'build_ext': Nuitka},
        ext_modules=Compile(packages),
    )
else:
    build_settings = {}


setup(
    name='nuitka_setuptools',
    py_modules=['nuitka_setuptools'],
    description='Extension to setuptools to run your package through nuitka to '
                'produce compiled, faster, obfuscated binary modules.',
    long_description=long_description,
    author='Andrew Leech',
    author_email='andrew@alelec.net',
    url='https://gitlab.com/alelec/nuitka-setuptools',
    use_scm_version=True,
    include_package_data=True,
    install_requires=['setuptools_scm'],
    setup_requires=['setuptools_scm'],
    cmdclass={'build_ext': Nuitka},
    ext_modules=Compile(['nuitka_setuptools']),
    **build_settings
)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nuitka_setuptools-2.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nuitka_setuptools-2.0-py2.py3-none-any.whl (6.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file nuitka_setuptools-2.0.tar.gz.

File metadata

File hashes

Hashes for nuitka_setuptools-2.0.tar.gz
Algorithm Hash digest
SHA256 3344ff0e8e0a5c9e36fd1574bbec19b4f1b97b5852221b08b03b2c3b573593be
MD5 a96d229ce0ae6546f9d3467ba8a3b9c0
BLAKE2b-256 dcfc6fbf4aa3deeb2d17ab22b38ac7131f7e6a4707436c1b628253b38408ae50

See more details on using hashes here.

File details

Details for the file nuitka_setuptools-2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nuitka_setuptools-2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8dca8848368ba9047df81f9bb23419c75dd20b17ffdbdea6af66c82c49cb2527
MD5 937230549f307712a80efda75ec777c5
BLAKE2b-256 36d7515b36d1abc731831b0c91ef0c5f216551108bc78d7a825febd9be353ce0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0 This release

2 files

1.1

2 files

1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page