EasyNuitka User Manual
Overview
EasyNuitka is a Nuitka-based packaging tool with a graphical interface
Usage
-
C Compiler: You need a compiler with support for C11 or alternatively for C++03 [#]_
Currently this means, you need to use one of these compilers:
-
The MinGW64 C11 compiler on Windows, must be based on gcc 11.2 or higher. It will be automatically downloaded if no usable C compiler is found, which is the recommended way of installing it, as Nuitka will also upgrade it for you.
-
Visual Studio 2022 or higher on Windows [#]_, older versions will work but only supported for commercial users. Configure to use the English language pack for best results (Nuitka filters away garbage outputs, but only for English language). It will be used by default if installed.
-
On all other platforms, the
gcc
compiler of at least version 5.1, and below that theg++
compiler of at least version 4.4 as an alternative. -
The
clang
compiler on macOS X and most FreeBSD architectures. -
On Windows the
clang-cl
compiler on Windows can be used if provided by the Visual Studio installer.
-
-
Python: Version 2.6, 2.7 or 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10
.. important::
For Python 3.3/3.4 and only those, we need other Python version as a compile time dependency.
Nuitka itself is fully compatible with all listed versions, but Scons as an internally used tool is not.
For these versions, you need a Python2 or Python 3.5 or higher installed as well, but only during the compile time only. That is for use with Scons (which orchestrates the C compilation), which does not support the same Python versions as Nuitka.
In addition, on Windows, Python2 cannot be used because
clcache
does not work with it, there a Python 3.5 or higher needs to be installed.Nuitka finds these needed Python versions (e.g. on Windows via registry) and you shouldn't notice it as long as they are installed.
Increasingly, other functionality is available when another Python has a certain package installed. For example, onefile compression will work for a Python 2.x when another Python is found that has the
zstandard
package installed... admonition:: Moving binaries to other machines
The created binaries can be made executable independent of the Python installation, with
--standalone
and--onefile
options... admonition:: Binary filename suffix
The created binaries have an
.exe
suffix on Windows. On other platforms they have no suffix for standalone mode, or.bin
suffix, that you are free to remove or change, or specify with the-o
option.The suffix for acceleration mode is added just to be sure that the original script name and the binary name do not ever collide, so we can safely do an overwrite without destroying the original source file.
.. admonition:: It has to be CPython, Anaconda Python.
You need the standard Python implementation, called "CPython", to execute Nuitka, because it is closely tied to implementation details of it.
.. admonition:: It cannot be from Windows app store
It is known that Windows app store Python definitely does not work, it's checked against. And on macOS "pyenv" likely does not work.
-
Operating System: Linux, FreeBSD, NetBSD, macOS X, and Windows (32/64 bits).
Others may work as well. The portability is expected to be generally good, but the e.g. Scons usage may have to be adapted. Make sure to match Windows Python and C compiler architecture, or else you will get cryptic error messages.
-
Architectures: x86, x86_64 (amd64), and arm, likely many more
Other architectures are expected to also work, out of the box, as Nuitka is generally not using any hardware specifics. These are just the ones tested and known to be good. Feedback is welcome. Generally, the architectures that Debian supports can be considered good and tested too.
.. [#]
Support for this C11 is a given with gcc 5.x or higher or any clang version.
The MSVC compiler doesn't do it yet. But as a workaround, as the C++03 language standard is very overlapping with C11, it is then used instead where the C compiler is too old. Nuitka used to require a C++ compiler in the past, but it changed.
.. [#]
Download for free from https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx (the community editions work just fine).
The latest version is recommended but not required. On the other hand, there is no need to except pre-Windows 10 support, and they might work for you, but support of these configurations is only available to commercial users.
For most systems, there will be packages on the download page <https://nuitka.net/doc/download.html>
__ of Nuitka. But you can also
install it from source code as described above, but also like any other
Python program it can be installed via the normal python setup.py install
routine.
Nuitka is licensed under the Apache License, Version 2.0; you may not use it except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Tutorial Setup and build on Windows
This is basic steps if you have nothing installed, of course if you have any of the parts, just skip it.
-
Download and install Python from https://www.python.org/downloads/windows
-
Select one of
Windows x86-64 web-based installer
(64 bits Python, recommended) orx86 executable
(32 bits Python) installer. -
Verify it's working using command
python --version
.
-
python -m pip install nuitka
-
Verify using command
python -m nuitka --version
python -m pip install EasyNuitka
python -m EasyNuitka
You will find the current version at: https://nuitka.net/doc/user-manual.html