# Build and Install novelWriter The root folder of the repository contains two scripts for setup and install: ## Script `setup.py` The `setup.py` is a standard Python setup script with a couple of additional options: * `qthelp`: Will attempt to build a single file QtAssistand documentation file. This requires the Qt tools to be installed on the local system, as well as the sphinx build tools for the documentation. * `sample`: Will create a `sample.zip` file in the `nw/assets` folder. This is the file the New Project Wizard uses to generate an example project. If novelWriter is run from source, this file is not needed. * `launcher`: Will try to copy the novelWriter icons and create a novelWriter.desktop file to launch the application. This should work on standard Linux desktops. To install novelWriter as a local Python package, run: ```bash sudo python setup.py install ``` ## Script `make.py` The `make.py` script provides a number of convenient options for building packages if novelWriter. Usage: ```bash python make.py [command] ``` It currently accept the following commands: * `help`: Print the help message. * `freeze`: Freeze the package and produces a folder of all dependencies using pyinstaller. * `onefile`: Build a standalone executable with all dependencies bundled. Implies `freeze`, cannot be used with `setup`. * `pip`: Run pip to install all package dependencies for novelWriter and this build tool. * `setup`: Build a setup.exe installer for Windows. This option automaticall disables the `onefile` option. * `clean`: This will attempt to delete the `build` and `dist` folders in the current folder. For instance, to create a Windows installer, run: ```bash python make.py freeze setup ```