Installing the pokedex library

Quick startup with Ubuntu/Debian-like systems

Run the following from an empty directory:

$ sudo apt-get install git python python-pip python-sqlalchemy
$ git clone git://github.com/veekun/pokedex.git
$ pip install -E env -e pokedex
$ source env/bin/activate
(env)$ pokedex setup -v
(env)$ pokedex lookup eevee

If it all goes smoothly, you can now use env/bin/pokedex, the command-line tool, and env/bin/python, a Python interpreter configured to use the pokedex library.

That is all you need. Feel free to skip the rest of this chapter if you’re not interested in the details.

Prerequisites

Linux

Ubuntu/Debian users should run the following:

$ sudo apt-get install git python python-pip

With other Linuxes, install the packages for git, python (2.6 or 2.7, not 3.x), and python-pip.

If you succeeded, skip the Detailed instructions.

Detailed instructions

You should know what a command line is and how to work with it. The here we assume you’re using Linux [1], if that’s not the case, make sure you have enough computer knowledge to translate the instructions to your operating system.

Pokedex is distributed via Git. So, get Git.

You will also need Python 2; the language pokedex is written in. Be sure to get version 2.6 or 2.7. Pokedex does not work with Python 3.x yet, and it most likely won’t work with 2.5 or earlier.

Next, get pip, a tool to install Python packages. Experts can use another tool, of course.

Make sure git and pip are on your path.

Optionally you can install SQLAlchemy, Python markdown, Whoosh, or construct. If you don’t, pip will atuomatically download and install a copy for you, but some are pretty big so you might want to install it system-wide. (Unfortunately, many distros have outdated versions of these libraries, so pip will install pokedex’s own copy anyway.)

Getting and installing pokedex

Run the following from an empty directory:

$ git clone git://github.com/veekun/pokedex.git
$ pip install -E env -e pokedex

This will give you two directories: pokedex (containing the source code and data), and env (a virtualenv).

In env/bin, there are three interesting files:

  • pokedex: The pokedex program
  • python: A copy of Python that knows about pokedex and its prerequisites.
  • activate: Typing source env/bin/activate in a shell will put pokedex and our bin/python on the $PATH, and generally set things up to work with them. Your prompt will change to let you know of this. You can end such a session by typing deactivate.

This documentation will assume that you’ve activated the virtualenv, so pokedex means env/bin/pokedex.

Advanced

You can of course install into an existing virtualenv, by either using its pip and leaving out the -E env, or running the setup script directly:

(anotherenv)$ cd pokedex
(anotherenv)pokedex$ python setup.py develop

It is also possible to install pokedex system-wide. There are problems with that. Don’t do it. The only time you need sudo is for getting the prerequisites.

Loading the database

Before you can do anything useful with pokedex, you need to load the database:

$ pokedex setup -v

This will load the data into a default SQLite database and create a default Whoosh index.

Advanced

If you want to use another database, make sure you have the corresponding SQLAlchemy engine for it and either use the -e switch, (e.g. -e postgresql://@/pokedex), or set the POKEDEX_DB_ENGINE environment variable.

To use another lookup index directory, specify it with -i or the POKEDEX_INDEX_DIR variable.

Make sure you always use the same options whenever you use pokedex.

If you’re confused about what pokedex thinks its settings are, check pokedex status.

See pokedex help for even more options.

All done

To verify that all went smoothly, check that the pokedex tool finds your favorite pokémon:

$ pokedex lookup eevee

Yes, that was a bit anti-climatic. The command-line tool doesn’t do much, currently.

Footnotes

[1]If you write instructions for another OS, well be happy to include them here. The reason your OS is not listed here is because the author doesn’t use it, so naturally he can’t write instructions for it.