292 lines
10 KiB
ReStructuredText
292 lines
10 KiB
ReStructuredText
.. _a_started:
|
||
|
||
***************
|
||
Getting Started
|
||
***************
|
||
|
||
This is a brief guide to how you can get novelWriter running on your computer. These are the
|
||
methods currently supported by the developer. Packages may also be available in other package
|
||
managers, but those are not managed by the developer. A Windows installer file is also provided on
|
||
the GitHub releases page and linked from the `main website`_.
|
||
|
||
As novelWriter matures, more options for how to install it and get it running will be added. For
|
||
non-Windows users the install process is at the present time best suited for people used to working
|
||
with the command line. But even if you're not, the install process is fairly straight forward.
|
||
|
||
.. note::
|
||
The text below assumes the command ``python`` corresponds to a Python 3 executable. For
|
||
operating systems with both Python 2 and 3, the command ``python3`` may be needed instead. On
|
||
Linux, the scripts can also be made executable and run without the ``python`` command. Likewise,
|
||
``pip`` may need to be replaced with ``pip3``.
|
||
|
||
.. _main website: https://novelwriter.io
|
||
|
||
|
||
.. _a_started_install:
|
||
|
||
Installing and Running
|
||
======================
|
||
|
||
The application is written in Python 3 using Qt5 via PyQt5. It is developed on Linux, but it should
|
||
in principle work fine on other operating systems as long as dependencies are met.
|
||
|
||
You can download the latest version of novelWriter from the source repository on GitHub_.
|
||
novelWriter is also hosted on PyPi_, and can be installed on all operating systems that support Qt5
|
||
and Python 3. It is regularly tested on Linux, Windows and macOS. The latest version of novelWriter
|
||
is |release|.
|
||
|
||
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
|
||
system. If you don't, see specific instructions for your operating system later in this document.
|
||
To install novelWriter from PyPi, use the following command:
|
||
|
||
.. code-block:: console
|
||
|
||
pip install novelwriter
|
||
|
||
To upgrade an existing installation, use:
|
||
|
||
.. code-block:: console
|
||
|
||
pip install --upgrade novelwriter
|
||
|
||
When installing via pip, novelWriter can be launched from command line with:
|
||
|
||
.. code-block:: console
|
||
|
||
novelWriter
|
||
|
||
Make sure the install location for pip is in your PATH variable. This is not always the case by
|
||
default.
|
||
|
||
.. _GitHub: https://github.com/vkbo/novelWriter/releases
|
||
.. _PyPi: https://pypi.org/project/novelWriter/
|
||
|
||
|
||
.. _a_started_depend:
|
||
|
||
Python Dependencies
|
||
-------------------
|
||
|
||
novelWriter has been designed to rely on as few dependencies as possible. Aside from the package(s)
|
||
needed to communicate with the Qt GUI libraries, only one package is required for handling the XML
|
||
format of the main project file. Everything else is handled with standard Python libraries.
|
||
|
||
The following Python packages are needed to run novelWriter:
|
||
|
||
* ``pyqt5`` – needed for connecting with the Qt5 libraries.
|
||
* ``lxml`` – needed for full XML support.
|
||
* ``pyenchant`` – needed for efficient spell checking (optional).
|
||
|
||
PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all features to work.
|
||
Exporting to standard Markdown, for instance, requires PyQt/Qt 5.14. Searching using regular
|
||
expressions requires 5.3, and for full Unicode support, 5.13. There is no known minimum version
|
||
requirement for package ``lxml``, but the code was originally written with 4.2, which is therefore
|
||
set as the minimum. It may work on lower versions. You have to test it.
|
||
|
||
Optionally, a package can be installed to interface with the Enchant spell checking libaries, but
|
||
this isn't strictly required. If no external spell checking library is available, novelWriter falls
|
||
back to using the internal ``difflib`` of Python to check spelling. This is a much slower approach,
|
||
and it is less sophisticated than full spell checking libaries, but if you only work with small
|
||
files, the performance loss is not noticeable. The spell check library must be at least 3.0 to work
|
||
with Windows. On Linux, 2.0 also works fine.
|
||
|
||
If you install from PyPi, these dependencies should be installed automatically. If you install from
|
||
source, dependencies can still be installed from PyPi with:
|
||
|
||
.. code-block:: console
|
||
|
||
pip install -r requirements.txt
|
||
|
||
|
||
.. _a_started_running:
|
||
|
||
Running from Source
|
||
-------------------
|
||
|
||
If all the required dependencies are met, you can run novelWriter from the command line with:
|
||
|
||
.. code-block:: console
|
||
|
||
python novelWriter.py
|
||
|
||
A few switches are supported from the command line, mostly to assist in debugging if an error is
|
||
encountered. To list all options, run:
|
||
|
||
.. code-block:: console
|
||
|
||
python novelWriter.py --help
|
||
|
||
|
||
.. _a_started_linux:
|
||
|
||
Setup on Linux
|
||
==============
|
||
|
||
The dependencies of novelWriter are generally available from Linux distro repositories. For Debian
|
||
and Ubuntu, they can be installed with:
|
||
|
||
.. code-block:: console
|
||
|
||
sudo apt install python3-pyqt5 python3-lxml python3-enchant
|
||
|
||
If you downloaded the source, you can use the provided ``setup.py`` script to install novelWriter
|
||
into the system's default Python install locations. If so, run:
|
||
|
||
.. code-block:: console
|
||
|
||
python setup.py install
|
||
|
||
To set up the novelWriter desktop launcher, the icons, and the project file association, run:
|
||
|
||
.. code-block:: console
|
||
|
||
python setup.py xdg-install
|
||
|
||
By default, these commands install novelWriter and its icons for the current user only. To install
|
||
for all users, run the script with the ``sudo`` command. Other options are also available. Run
|
||
``python setup.py help`` for a full list of install options.
|
||
|
||
This should install novelWriter to either ``~/.local/bin/novelWriter`` if installed for local user
|
||
only, or to ``/usr/local/bin/novelWriter`` if installed for all users.
|
||
|
||
|
||
.. _a_started_macos:
|
||
|
||
Setup on macOS
|
||
==============
|
||
|
||
These instructions assume you're using brew, and have Python and pip set up. If not, see the
|
||
`brew docs`_ for help. Main requirements are installed via the requirements file. You also need to
|
||
install the ``pyobjc`` package, so you must run:
|
||
|
||
.. code-block:: console
|
||
|
||
pip3 install --user -r requirements.txt
|
||
pip3 install --user pyobjc
|
||
|
||
For spell checking you may also need to install the enchant package. It comes with a lot of default
|
||
dictionaries.
|
||
|
||
.. code-block:: console
|
||
|
||
brew install enchant
|
||
|
||
With the dependencies in place, you can either launch the ``novelWriter.py`` script directly, or
|
||
run the install command:
|
||
|
||
.. code-block:: console
|
||
|
||
python setup.py install
|
||
|
||
After this, you should be able to launch novelWriter by running ``novelWriter`` in a command line
|
||
window.
|
||
|
||
Right now there isn't a better integration with macOS available. Contributions from someone more
|
||
familiar with macOS would be very much appreciated.
|
||
|
||
.. _brew docs: https://docs.brew.sh/Homebrew-and-Python
|
||
|
||
|
||
.. _a_started_windows:
|
||
|
||
Setup on Windows
|
||
================
|
||
|
||
On Windows, you have two options: You can either run from source, or install novelWriter via a
|
||
Windows installer.
|
||
|
||
|
||
.. _a_started_win_installer:
|
||
|
||
Windows Installer
|
||
-----------------
|
||
|
||
You can install novelWriter with the Windows installer for 64-bit Windows available on the
|
||
`main website`_ and GitHub_ page. This installer bundles all that is needed for novelWriter to run,
|
||
including Python and the XML and Qt libraries. When installing novelWriter this way, you don't need
|
||
to install any of the dependencies manually. The installer is made with pyinstaller and Inno Setup.
|
||
|
||
|
||
.. _a_started_win_source:
|
||
|
||
From Source
|
||
-----------
|
||
|
||
To run from source, you may first need to install Python. If you don't have it installed, you can
|
||
download it from the python.org_ website. novelWriter should work with Python 3.6 or higher, but it
|
||
is recommended that you install the latest version of Python.
|
||
|
||
Also, make sure you select the "Add Python to PATH" option during installation, otherwise the
|
||
``python`` command will not work in the command line window.
|
||
|
||
.. image:: images/python_win_install.png
|
||
:width: 600
|
||
|
||
Once Python is set up and running, you can either run novelWriter from the folder where you
|
||
extracted it, or you can build an executable and run that from a desktop icon instead.
|
||
|
||
The PyPi installer should come bundled with the Python installation, so to install dependencies,
|
||
run:
|
||
|
||
.. code-block:: console
|
||
|
||
pip install --user -r requirements.txt
|
||
|
||
.. tip::
|
||
|
||
To create a desktop shortcut to launch novelWriter, you can right click the ``novelWriter.py``
|
||
file, create a shortcut, then right click again, select "Properties" and change the target to
|
||
your python executable followed by ``novelWriter.py``. It should look something like this:
|
||
``C:\...\AppData\Local\Programs\Python\Python38\python.exe novelWriter.py``
|
||
|
||
You can also run the ``setup.py`` script to generate a single executable, or an installer.
|
||
See `Build and Install novelWriter`_ for more details or run: ``python setup.py help``.
|
||
|
||
.. _python.org: https://www.python.org/downloads/windows/
|
||
.. _Build and Install novelWriter: https://github.com/vkbo/novelWriter/blob/main/setup/README.md
|
||
|
||
|
||
.. _a_started_docs:
|
||
|
||
Building the Documentation
|
||
==========================
|
||
|
||
If you installed novelWriter from a package, the documentation should be included. If you're
|
||
running novelWriter from the source code, a local copy of this documentation can be generated. It
|
||
requires the following Python packages on Debian and Ubuntu.
|
||
|
||
* ``python3-sphinx``
|
||
* ``python3-sphinxcontrib.qthelp``
|
||
|
||
Or from PyPi:
|
||
|
||
.. code-block:: console
|
||
|
||
pip install sphinx sphinxcontrib-qthelp
|
||
|
||
The documentation can then be built from the ``docs`` folder in the source code by running:
|
||
|
||
.. code-block:: console
|
||
|
||
make html
|
||
|
||
If successful, the documentation should be available in the ``docs/build/html`` folder and you can
|
||
open the ``index.html`` file in your browser.
|
||
|
||
The documentation can also be built for the Qt Assistant. To build the help packages from the
|
||
documentation source, run the following from the root source folder:
|
||
|
||
.. code-block:: console
|
||
|
||
python setup.py qthelp
|
||
|
||
The setup script will copy the generated files into the ``nw/assets/help`` folder, and novelWriter
|
||
will detect the presence of the files and redirect the menu help entry to open help locally instead
|
||
of sending the user to the website. Pressing the :kbd:`F1` key will in any case try to open help
|
||
locally first, then send you to the website as a fallback.
|
||
|
||
.. note::
|
||
In order for the local version of help to work, the Qt Assistant must be installed on the local
|
||
computer. If it isn't available, or novelWriter cannot find it, the help feature will fall back
|
||
to redirecting you to the documentation website.
|