WeeWX: Installation using setup.py

These are generic instructions for installing WeeWX using the Python utility setup.py.

Which version of Python?

While WeeWX will run under either Python 2 or Python 3, you should run it under Python 3, if possible. Python 2 is no longer supported by the Python Software Foundation.

The "default" version of Python, that is, the version that is invoked with the simple command python, varies from system to system. However, the command python3 will always invoke Python 3, so it's safest to use that.

The instructions below assume you will be using Python 3.

1. Install prerequisites

First, install the prerequisites appropriate for your operating system.

Prerequisites for Debian 10 (Buster), Raspbian 10, Ubuntu 18.04-19.10

sudo apt update

# Required
sudo apt install python3-configobj
sudo apt install python3-pil
sudo apt install python3-serial
sudo apt install python3-usb
sudo apt install python3-pip

# This works for most installations...
sudo apt install python3-cheetah
# ... if not, try this:
sudo pip3 install Cheetah3

# Optional: for extended almanac information
sudo apt install python3-ephem

# Required if you are using MySQL (MariaDB):
sudo apt install mariadb-client
sudo apt install python3-mysqldb

Prerequisites for Debian 9 (Stretch), Raspbian 9, Ubuntu 16.04-17.10

sudo apt update

# Required
sudo apt install python3-configobj
sudo apt install python3-pil
sudo apt install python3-serial
sudo apt install python3-usb

# The following tests for distutils and installs if not present:
python3 -c "import distutils" 2>/dev/null || sudo apt install python3-distutils

# Install pip3 and cheetah3:
sudo apt install python3-pip
sudo pip3 install cheetah3

# Optional: for extended almanac information
sudo apt install python3-ephem

# Required if you are using MySQL (MariaDB):
sudo apt install mysql-client
sudo apt install python3-mysqldb

Prerequisites for Redhat 7, Centos 7, not using MySQL.

sudo yum update

# Ensure that Python 3 is installed:
sudo yum install python3

# Required:
sudo pip3 install configobj
sudo pip3 install pillow
sudo pip3 install pyserial
sudo pip3 install pyusb
sudo pip3 install cheetah3

# Optional: for extended almanac information
sudo pip3 install pyephem

Prerequisites for Redhat 7, Centos 7, using MySQL. In this case, you should use Python 2.

sudo yum update

# Required:
sudo yum install python-configobj
sudo yum install python-cheetah
sudo yum install python-pillow
sudo yum install pyserial
sudo yum install pyusb
sudo yum install MySQL-python

# Optional: for extended almanac information
sudo pip install pyephem

Prerequisites for Redhat 8, Centos 8

sudo yum update

# Ensure that Python3 is installed:
sudo yum install python3

# Required:
sudo yum install python3-configobj
sudo yum install python3-pillow
sudo yum install python3-pyserial
sudo yum install python3-pyusb
sudo pip3 install cheetah3

# Optional: for extended almanac information
sudo pip3 install pyephem

# Required if using MySQL:
sudo yum install python3-pymysql

Prerequisites for OpenSUSE. Tested on Leap 15.1

sudo zypper update

# Required:
sudo zypper install python3-configobj
sudo zypper install python3-Pillow      # Case matters!
sudo zypper install python3-pyserial
sudo zypper install python3-usb
sudo zypper install python3-Cheetah3    # Case matters!

# Optional: for extended almanac information
sudo pip3 install pyephem

# Required if using MySQL / MariaDB:
sudo zypper install python3-mysqlclient

2. Download

Download the source archive weewx-X.Y.Z.tar.gz from weewx.com/downloads.

3. Install WeeWX

After installing the prerequisites, you can install WeeWX itself.

  1. Expand the source archive:

    tar xvfz weewx-X.Y.Z.tar.gz
  2. Change directory into the expanded archive:

    cd weewx-X.Y.Z
  3. To specify an install location different from the default /home/weewx, modify the parameter home in the setup.cfg file. Mac users will want to change it to /Users/Shared/weewx.

  4. Then build and install. Python 2 users: substitute python2 for python3.

    python3 ./setup.py build
    sudo python3 ./setup.py install

4. Run

Run the main program directly:

cd /home/weewx
sudo ./bin/weewxd

Or as a daemon automatically when the computer starts:

cd /home/weewx
sudo cp util/init.d/weewx.debian /etc/init.d/weewx
sudo chmod +x /etc/init.d/weewx
sudo update-rc.d weewx defaults 98
sudo /etc/init.d/weewx start
cd /home/weewx
sudo cp util/init.d/weewx.redhat /etc/rc.d/init.d/weewx
sudo chmod +x /etc/rc.d/init.d/weewx
sudo chkconfig weewx on
sudo /etc/rc.d/init.d/weewx start
cd /home/weewx
sudo cp util/init.d/weewx.suse /etc/init.d/weewx
sudo chmod +x /etc/init.d/weewx
sudo /usr/lib/lsb/install_initd /etc/init.d/weewx
sudo /etc/init.d/weewx start

5. Status

Look in the system log for messages from WeeWX. For example, on Debian systems:

sudo tail -f /var/log/syslog

6. Verify

After about 5 minutes, open the station web page in a web browser. You should see your station information and data. If your hardware supports hardware archiving, then how long you wait will depend on the archive interval set in your hardware.

file:///home/weewx/public_html/index.html

Customize

To enable uploads such as Weather Underground or to customize reports, modify the configuration file /home/weewx/weewx.conf. See the User Guide and Customization Guide for details.

WeeWX must be restarted for configuration file changes to take effect.

Uninstall

To uninstall, simply delete the directory /home/weewx. This will delete WeeWX, configuration files, and data.

sudo rm -r /home/weewx
sudo rm /etc/init.d/weewx

Layout

The installation will place WeeWX in the /home/weewx directory with the following layout:

executable: /home/weewx/bin/weewxd
configuration file: /home/weewx/weewx.conf
skins and templates: /home/weewx/skins/
sqlite databases: /home/weewx/archive/
generated web pages and images: /home/weewx/public_html/
documentation: /home/weewx/docs/
examples: /home/weewx/examples/
utilities: /home/weewx/bin/