Dependencies

TL;DR: Ubuntu/Debian

$ sudo apt-get install python-yaml python-sqlalchemy \
   python-nose python-boto python-sphinx \
   git-annex rst2pdf libavahi-compat-libdnssd1 \
   python-scipy python-pycurl

Core Packages

Pydfmux depends on several Python packages. These packages are available on Linux, Mac OS X, and Windows. They are:

  • yaml (for loading hardware maps from disk)
  • SQLAlchemy >= 0.8 (For in memory hardware map) Note – recommend >= 1.1.12
  • tornado 4.5.3 (an asynchronous I/O framework we use heavily, included in source code)
  • scipy (we use scipy.signal for the peak-finding in the adaptive meshing netanal)

Note

Installation from system package managers (such as apt-get) are commonly out of date relative to the packages themselves in PyPy. Installation from PyPy can be accomplished with pip. Specifically: you may have to manually upgrade SQLAlchemy package depending on how up-to-date your distribution packages are, with pip install --upgrade SQLAlchemy. It may be necessary to then remove the system installed versions with, e.g, sudo apt-get remove python-sqlalchemy or ensure your PYTHONPATH looks first for the pip site packages (typically /usr/local/lib/python2.7/dist-packages). Note that it also holds true that you will receive more recent versions of the other python packages through pip (such as scypi, yaml, noise, sphinx) but we are more robust to deprecated versions of these.

Optional Packages

These packages are only useful for some tasks (e.g. running mezzanine QC scripts, building firmware images, et cetera.)

  • boto (Python API for accessing Amazon Web Services)
  • nose (Python’s “nose” testing framework)
  • opkg, u-boot mkimage, and a few others (see Firmware Upgrades)
  • libgetdata4 (for using the McGill Parser: sudo apt-get install libgetdata4)