WeeWX: Installation using setup.py

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

Download

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

Which version of Python?

WeeWX will run under either Python 2 or Python 3, specifically, Python 2.7 or Python 3.5 or greater.

If your system offers both Python 2 and Python 3, how do you decide which version to use? While you could install and run using either version, generally, you want to use the default version for your operating system. You can check which this is by running the command python with the -V option. For example:

user@mycomputer:~$ python -V
Python 2.7.15rc1

In this example, the default version is Python 2 (specifically, v2.7.15), so you would be happiest if you install using Python 2.

Install prerequisites

Install the required python packages using either the package management software for your system (e.g., apt-get, yum, yast) or the Python Package Management System (pip). Select the appropriate tab for specific instructions for your chosen install method and Python version.

# For systems that do not have Python 2 pre-installed (for example,
# Ubuntu 18.04 and later):
sudo apt-get install python

# For all systems, you may have to install the Python Imaging Library.
# Try this first:
sudo apt-get install python-pil
# If that doesn't work, try this:
sudo apt-get install python-imaging

# Other required packages:
sudo apt-get install python-configobj
sudo apt-get install python-cheetah

# Required if hardware is serial or USB, respectively:
sudo apt-get install python-serial
sudo apt-get install python-usb

# Required if using MySQL:
sudo apt-get install mysql-client
sudo apt-get install python-mysqldb

# Required if using FTP on Raspbian systems:
sudo apt-get install ftp

# Optional for extended almanac information:
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo pip install pyephem
sudo apt-get install python3-pil
sudo apt-get install python3-configobj

# As of this writing, Cheetah 3 can only be installed using pip:
sudo apt-get install python3-pip
sudo apt-get install python3-dev
sudo pip3 install cheetah3

# Required if hardware is serial or USB, respectively:
sudo apt-get install python3-serial
sudo apt-get install python3-usb

# Required if using MySQL:
sudo apt-get install mysql-client
sudo apt-get install python3-mysqldb

# Optional for extended almanac information:
sudo pip3 install pyephem
    
# Required packages:
sudo yum install python-configobj
sudo yum install python-cheetah
sudo yum install python-imaging

# Required if hardware is serial or USB:
sudo yum install python-setuptools
sudo easy_install pyserial
sudo easy_install pyusb

# Required if using MySQL:
sudo yum install mysql-client
sudo yum install python-mysqldb

# Optional for extended almanac information:
sudo yum install pyephem
                
# For systems that do not have Python 3 installed,
# see this article: https://linuxize.com/post/how-to-install-python-3-on-centos-7/

# Log in as root
su -l

# Enable the Python 3 environment. For example, if you
# installed Python 3.5, the command would be:
scl enable rh-python35 bash
# Double-check that Python 3 is now the default:
python -V
Python 3.5.1

# Make sure development tools have been installed:
yum groupinstall 'Development Tools'

# You may have to install the zlib and jpeg headers and libraries
yum install zlib-devel
yum install libjpeg-devel

# Now install prerequisites using pip:
pip install configobj
pip install cheetah3
pip install Pillow-PIL


# Required if hardware is serial or USB, respectively:
pip install pyserial
pip install pyusb

# Optional for extended almanac information:
pip install pyephem
# On some SUSE systems, use 'yast -i' instead of 'zypper install'

# Required packages:
sudo zypper install python-configobj
sudo zypper install python-imaging
sudo zypper install python-Cheetah

# Required if hardware is serial or USB:
sudo zypper install python-pyserial
sudo zypper install pyton-usb

# Required if using MySQL:
sudo zypper install mysql-community-server-client
sudo zypper install python-mysql

# Optional for extended almanac information:
sudo zypper install python-devel
sudo zypper install setuptools
sudo pip install pyephem
                
TBD
sudo pip install configobj
sudo pip install cheetah
sudo pip install pillow
sudo pip install MySQL-python

# Required if hardware is serial or USB, respectively:
sudo pip install pyserial
sudo pip install pyusb

# Optional for extended almanac information:
sudo pip install pyephem
# Install pip3 if it has not already been installed:
sudo apt-get install python3-pip

# Then the prerequisites:
sudo pip3 install configobj
sudo pip3 install cheetah3
sudo pip3 install Pillow-PIL

# Required if you are planning on using MySQL. If this does not
# install cleanly, then see https://pypi.org/project/mysqlclient/
sudo pip3 install mysqlclient

# Required if hardware is serial or USB, respectively:
sudo pip3 install pyserial
sudo pip3 install pyusb

# Optional for extended almanac information:
sudo pip3 install pyephem
                

Install WeeWX

Expand the source archive:

tar xvfz weewx-X.Y.Z.tar.gz

Change directory:

cd weewx-X.Y.Z

To specify a location different from the standard /home/weewx, modify the parameter home in the setup.cfg file.

Then build and install:

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

The installer will prompt for a location, latitude/longitude, altitude, station type, and parameters specific to the station.

Run

Run the main program directly:

cd /home/weewx
sudo ./bin/weewxd weewx.conf

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

Status

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

sudo tail -f /var/log/syslog

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/