This chapter tells how to install and run Leo.
Important: If you have any problems installing Leo, please ask for help on `Leo’s help forum`_.
Contents
Leo requires Python. Leo will work on any platform that supports Python 2.6 or above, including Python 3.0 and above.
Leo also requires either the Qt widget set.
To enable spell checking, you must install the PyEnchant package.
The following sections describe how to install Python, Qt and PyEnchant.
To install Python, see this page.
To install Qt, get the binary package of PyQt from: http://www.riverbankcomputing.co.uk/software/pyqt/download
The version of PyQt that you download must match your installed Python version. Remember that Leo requires Python 2.6 or later, or Python 3.0 or later. Now run the binary PyQt installer.
Special care may be needed to install PyQt on MacOS. You must use the qt gui, not the qttabs gui.
You must install the PyEnchant package if you want to use Leo’s Spell tab. Download and install the PyEnchant package from http://www.rfk.id.au/software/pyenchant/download.html There is an executable installer for Windows users.
Many users will want to track the development version of Leo, in order to stay on top of the latest features and bug fixes. Running the development version is quite safe and easy, and it’s also a requirement if you want to contribute to Leo.
First, you need to get Bazaar (bzr) from http://bazaar-vcs.org. For windows users we recommend the standalone installer - the python installer may have problems pushing to Launchpad. Plain bzr installer only contains the command line version, so you might want to augment that with a friendly GUI - qbzr is recommended as it’s the easiest one to install. It provides command like bzr qlog, bzr qannotate etc.
Get Leo from launchpad by doing:
bzr branch lp:leo-editor
And that’s it! You can run leo/core/leo.py directly. When you want to refresh the code with latest modifications from Launchpad, run bzr pull.
If you make modifications to Leo (with the interest in sharing them with the Leo community), you can check them in to your local branch by doing bzr checkin. Now, to actually request your changes to be merged to Leo trunk, you need a Launchpad account with RSA keys in place. There is showmedo video about how to accomplish this in Windows using puttygen and pageant at http://showmedo.com/videos/video?name=1510070&fromSeriesID=151.
After your Launchpad account is set up, go to https://launchpad.net/leo-editor, choose “Code” tab -> Register Branch, select Branch type “Hosted” and fill in descriptive details about the branch. After that, go to the branch home page from Code tab again, and copy-paste the push command line to terminal. For example, for branch:
https://code.launchpad.net/~leo-editor-team/leo-editor/mod_rclick
The push command is:
bzr push bzr+ssh://my_name@bazaar.launchpad.net/~leo-editor-team/leo-editor/mod_rclick
You may wish to add –remember command line option to bzr push, to direct all future pushes to that location. Then, you only need to execute bzr push.
After your branch is pushed, you can email the Leo mailing list and request it to be reviewed and merged to trunk.
If you are using Debian/Ubuntu, find and install the debian package. This provides the best integration with your desktop (file associations, icons, launcher item). Failing that, follow the instructions below.
Download the latest version of Leo (a .zip file) from Leo’s download page.
Unzip the downloaded .zip file into the unpacked folder in your home directory. The unpacked folder will be called something like leo-4-5.
You now have two choices:
You can run Leo from your home directory. Just add ~/leo-4-5 to your path.
You can install leo into /usr/local/lib and /usr/local/bin by running Leo’s install script as follows:
cd ~/leo-4-4-3-final
chmod u+x install
sudo ./install
The install script will instruct you to add /usr/local/bin to your path. You can, instead, add the following link:
sudo ln -s /usr/local/lib/leo/ /usr/local/lib/python2.6/site-packages/
Now you are ready to run Leo.
Here is how to install Leo on MacOS 10.5 (Leopard):
MacOS 10.5 comes with Python pre-installed.
See http://www.python.org/download/mac/ and http://wiki.python.org/moin/MacPython/Leopard for information about using the latest version of Python.
Download and install bzr:
Get Leo’s sources from Leo’s trunk:
cd ~
mkdir leo.repo
cd leo.repo
bzr init
bzr branch lp:leo-editor
cd leo-editor
If you already have Qt and PyQt installed, you can run the qt version of Leo as follows:
python launchLeo.py --gui=qt
from sources. There does not seem to be any pre-built binaries.
in order to get a development environment.
D: At various points along the way you will need to build the sources:
python configure.py
make
sudo make install
You can run Leo from a Python interpreter as follows:
import leo
leo.run() # runs Leo, opening a new outline or,
leo.run(fileName=aFileName) # runs Leo, opening the given file name.
Another way to run Leo is as follows:
cd <path-to-launchLeo.py>
python launchLeo.py %*
Here are some tips that may make running Leo easier:
The following shell script will allow you to open foo.leo files by typing leo foo:
#!/bin/sh
python <leopath>launchLeo.py $1
where <leopath> is the path to the directory containing the leo directory.
You can associate Leo with .leo files using a batch file. Put the following .bat file in c:\Windows:
<path-to-python>/python <path-to-leo>/launchLeo.py %*
Here <path-to-leo> is the path to the directory containing the leo directory, that is, the directory containing launchLeo.py.
The first time you start Leo, a dialog will ask you for a unique identifier. If you are using a source code control system such as bzr, use your bzr login name. Otherwise your initials will do.
Leo stores this identifier in the file .leoID.txt. Leo attempts to create leoID.txt in the .leo sub-directory of your home directory, then in Leo’s config directory, and finally in Leo’s core directory. You can change this identifier at any time by editing .leoID.txt.
On startup, Leo looks for two arguments of the form:
--script scriptFile
If found, Leo enters batch mode. In batch mode Leo does not show any windows. Leo assumes the scriptFile contains a Python script and executes the contents of that file using Leo’s Execute Script command. By default, Leo sends all output to the console window. Scripts in the scriptFile may disable or enable this output by calling app.log.disable or app.log.enable
Scripts in the scriptFile may execute any of Leo’s commands except the Edit Body and Edit Headline commands. Those commands require interaction with the user. For example, the following batch script reads a Leo file and prints all the headlines in that file:
path = r"<path-to-folder-containing-the-leo-folder>\\leo\\test\\test.leo"
g.app.log.disable() # disable reading messages while opening the file
flag,newFrame = g.openWithFileName(path,None)
g.app.log.enable() # re-enable the log.
for p in newFrame.c.all_positions():
g.es(g.toEncodedString(p.h,"utf-8"))
Leo sends more detailed error messages to stderr, the output stream that goes to the console window. In Linux and MacOS environments, python programs normally execute with the console window visible. On Windows, can run Leo with the console window visible by associating .leo files with python.exe not pythonw.exe.
Python’s HOME environment variable specifies Leo’s HOME directory. See http://docs.python.org/lib/os-procinfo.html for details.
Leo uses os.expanduser(‘~’) to determine the HOME directory if no HOME environment variable exists.
Leo puts several files in your HOME/.leo directory: .leoID.txt, .leoRecentFiles.txt, and myLeoSettings.leo.