### Navigation

- index
- modules |
- next |
- previous |
- pywws 14.06.dev1238 documentation »

# Dependencies

The list of other software that pywws depends on looks frighteningly long at first glance. However, many of these packages won’t be needed by most users. What you need depends on what you want to do with pywws. Remember, it’s a “kit of parts” rather than a monolithic application.

Some of the requirements are Python packages that can be downloaded from the Python Package Index (PyPI). I recommend using pip to install these.

You should be able to install the remaining dependencies using your operating system’s package manager. This is a lot easier than downloading and compiling source files from the project websites. Note that some Linux distributions use different names for some of the packages, e.g. in Ubuntu, pyusb is called python-usb.

Note: some of these libraries may have their own dependencies that you may need to install. Follow the links to read more about each library’s requirements.

## Essential

- Python version 2.5 or higher

Python 3 is supported, but some things might not work properly. If you find a problem with Python 3, please send a message to the mailing list or submit a bug report on GitHub.

- pip

You will probably be able to install pip with your system’s package manager, where it may be called python-pip. If not, download and run the `get-pip.py` file from the pip web site. In either case you should immediately use pip to install the latest version of itself:

    sudo pip install --upgrade pip

### USB library

To retrieve data from a weather station pywws needs a python library that allows it to communicate via USB. There is a variety of USB libraries that can be used. Not all of them are available on all computing platforms, which may restrict your choice.

#### Mac OS X

On MacOS X the operating system’s generic hid driver “claims” the weather station, which makes it very difficult to use any other USB interface. Unfortunately, you will need to download and compile hidapi yourself.

- hidapi
- ctypes (your package manager may know it as python-ctypes)

If you can’t install ctypes then you can try the Cython interface to hidapi instead:

- cython-hidapi
- cython (your package manager may know it as python-Cython)

#### Other systems

- libusb version 0.1 or version 1.0 (should be available from the package manager)
- PyUSB version 1.0

    pip install pyusb==1.0.0b1

If you have problems with version 1 of PyUSB then version 0.4 can be used, provided you install version 0.1 of libusb. Your system package manager should have both libraries. As a last resort you can use hidapi – see the Mac OS X instructions above.

## Flexible timed tasks

The `pywws.Tasks` module can do tasks at particular times and/or dates. This requires the croniter library:

- croniter

    pip install croniter

## Running as a daemon

The `pywws.livelogdaemon` program runs pywws live logging as a proper UNIX daemon process. It requires the python-daemon library:

- python-daemon

    pip install python-daemon

## Graph drawing

The `pywws.Plot` module uses gnuplot to draw graphs. If you want to produce graphs of weather data, e.g. to include in a web page, you need to install the gnuplot application:

- gnuplot v4.2 or higher (should be available from the package manager)

## Secure website uploading (sftp)

The `pywws.Upload` module can use “ftp over ssh” (sftp) to upload files to your web-site. Normal uploading just uses Python’s standard modules, but if you want to use sftp you need to install these two modules:

- paramiko
- pycrypto

    sudo pip install pycrypto paramiko

## Twitter updates

The `pywws.ToTwitter` module can be used to send weather status messages to Twitter. Posting to Twitter requires these modules:

- python-twitter v1.0 or higher
- python-oauth2

    sudo pip install python-twitter oauth2

or

- tweepy v2.0 or higher
- python-oauth2

    sudo pip install tweepy oauth2

Changed in version 13.10_r1086: reenabled use of `tweepy` library as an alternative to `python-twitter`. `python-oauth2` is still required by `pywws.TwitterAuth`.

Changed in version 13.06_r1023: pywws previously used the `tweepy` library instead of `python-twitter` and `python-oauth2`.

## To create new language translations

pywws can be configured to use languages other than English, as described in How to use pywws in another language. The babel package is required to extract the strings to be translated and compile the translation files.

- babel

    sudo pip install babel

Translating the documentation also needs the sphinx-intl package.

- sphinx-intl

    sudo pip install sphinx-intl

Copying files to or from Transifex is made easier with the transifex-client package.

- transifex-client

    sudo pip install transifex-client

Changed in version 14.05.dev1209: pywws previously used the gettext package.

## To ‘compile’ the documentation

The documentation of pywws is written in “ReStructured text”. A program called Sphinx is used to convert this easy to write format into HTML for use with a web browser. If you’d like to create a local copy of the documentation (so you don’t have to rely on the online version, or to test a translation you’re working on) you need to install Sphinx.

- Sphinx

    sudo pip install sphinx

Comments or questions? Please subscribe to the pywws mailing list http://groups.google.com/group/pywws and let us know.

### Navigation

- index
- modules |
- next |
- previous |
- pywws 14.06.dev1238 documentation »