nuitka (1)
NAME
nuitka - the Python compilerSYNOPSIS
nuitka [--module] [--execute] [options] main_module.pyOPTIONS
- --version
- show program's version number and exit
- -h, --help
- show this help message and exit
- --module
- Create an extension module executable instead of a program. Defaults to off.
- --standalone, --portable
- Enable standalone mode in build. This allows you to transfer the created binary to other machines without it relying on an existing Python installation. It implies these options: "--recurse-all --recursestdlib". Defaults to off.
- --python-version=PYTHON_VERSION
- Major version of Python to be used, one of '2.6', '2.7', '3.2', or '3.3'.
- --python-debug
- Use debug version or not. Default uses what you are using to run Nuitka, most likely a non-debug version.
- --python-flag=PYTHON_FLAGS
- Python flags to use. Default uses what you are using to run Nuitka, this enforces a specific mode. These are options that also exist to standard Python executable. Currently supported "-S" (alias nosite). Default empty.
- --windows-disable-console
- When compiling for windows, disable the console window. Defaults to off.
- --lto
- Use link time optimizations if available and usable (g++ 4.6 and higher). Defaults to off.
- --clang
- Enforce the use of clang (clang 3.0 or higher). Defaults to off.
- --mingw
- Enforce the use of MinGW on Windows. Defaults to off.
- -j N, --jobs=N
- Specify the allowed number of parallel C++ compiler jobs. Defaults to the system CPU count.
- --warn-implicit-exceptions
- Given warnings for implicit exceptions detected at compile time.
- --icon=ICON_PATH
- Add executable icon (windows only).
Control the recursion into imported modules:
- --recurse-stdlib
- Also descend into imported modules from standard library. Defaults to off.
- --recurse-none
- When --recurse-none is used, do not descend into any imported modules at all, overrides all other recursion options. Defaults to off.
- --recurse-all, --recurse-on
- When --recurse-all is used, attempt to descend into all imported modules. Defaults to off.
- --recurse-to=MODULE/PACKAGE
- Recurse to that module, or if a package, to the whole package. Can be given multiple times. Default empty.
- --recurse-not-to=MODULE/PACKAGE
- Do not recurse to that module, or if a package, to the whole package in any case, overrides all other options. Can be given multiple times. Default empty.
- --recurse-plugins=MODULE/PACKAGE, --recurse-directory=MODULE/PACKAGE
- Recurse into that directory, no matter if it's used by the given main program in a visible form. Overrides all other options. Can be given multiple times. Default empty.
Immediate execution after compilation:
- --execute
- Execute immediately the created binary (or import the compiled module). Defaults to off.
- --execute-with-pythonpath, --keep-pythonpath
- When immediately executing the created binary (--execute), don't reset PYTHONPATH. When all modules are successfully included, you ought to not need PYTHONPATH anymore.
Dump options for internal tree:
- --dump-xml
- Dump the final result of optimization as XML, then exit.
- --dump-tree
- Dump the final result of optimization as text, then exit.
- --display-tree
- Display the final result of optimization in a GUI, then exit.
Code generation choices:
- --improved, --enhanced
- Allow minor devitations from CPython behaviour, e.g. better tracebacks, which are not really incompatible, but different.
- --code-gen-no-statement-lines
- Statements shall have their line numbers set. Disable this for less precise exceptions and slightly faster code. Not recommended. Defaults to off.
Output directory choices:
- --output-dir=DIRECTORY
- Specify where intermediate and final output files should be put. DIRECTORY will be populated with C++ files, object files, etc. Defaults to current directory.
- --remove-output
- Removes the build directory after producing the module or exe file. Defaults to off.
Debug features:
- --debug
- Executing all self checks possible to find errors in Nuitka, do not use for production. Defaults to off.
- --unstripped, --no-strip, --unstriped
- Keep debug info in the resulting object file for better gdb interaction. Defaults to off.
- --trace-execution
- Traced execution output, output the line of code before executing it. Defaults to off.
- --c++-only
- Compile the would-be regenerated source file. Allows compiling edited C++ files with the C++ compiler for quick debugging changes to the generated source. Defaults to off.
- --experimental
- Use features declared as 'experimental'. May have no effect if no experimental features are present in the code. Defaults to off.
Tracing features:
- --show-scons
- Operate Scons in non-quiet mode, showing the executed commands. Defaults to off.
- --show-progress
- Provide progress information and statistics. Defaults to off.
- --show-modules
- Provide a final summary on included modules. Defaults to off.
- --verbose
- Output details of actions take, esp. in optimizations. Can become a lot. Defaults to off.
EXAMPLES
Compile a python file "some_module.py" to a module "some_module.so":
- $ nuitka some_module.py
Compile a python program "some_program.py" to an executable "some_program.exe":
- $ nuitka --exe some_program.py
Compile a python program "some_program.py" and the package "some_package" it uses to an executable "some_program.exe":
- $ nuitka --exe --recurse-to=some_package some_program.py
Compile a python program "some_program.py" and all the modules it uses to an executable "some_program.exe". Then execute it immediately when ready:
- $ nuitka --exe --execute --recurse-all some_program.py
Compile a python program "some_program.py" and the modules it uses (even standard library) to an executable "some_program.exe":
- $ nuitka --recurse-all --recurse-stdlib some_program.py --exe
Compile a python program "some_program.py" and the modules it uses to an executable "some_program.exe". Keep the debug information, so valrind, gdb, etc. work nice.
Note: This will *not* degrade performance:
- $ nuitka --unstriped --recurse-all some_program.py --exe
Compile a python program "some_program.py" and the modules it uses to an executable "some_program.exe". Perform all kinds of checks about correctness of the generated C++ and run-time checks.
Note: This will degrade performance and should only be used to debug Nuitka:
- $ nuitka --debug --recurse-all some_program.py --exe
Compile a python program "some_program.py" and the modules it uses to an executable "some_program.exe". Perform all kinds of checks about correctness of the generated C++ and run-time checks. Also use the debug Python library, which does its own checks.
Note: This will degrade performance and should only be used to debug Nuitka:
- $ nuitka --debug --python-debug --recurse-all some_program.py --exe
Compile a python program "some_program.py" and the plugins modules it loads at run time to an executable "some_program.exe":
- $ nuitka --recurse-all --recurse-directory=plugins_dir some_program.py --exe