XMLWordPrintable

    Details

    • Type: Task
    • Status: Done (View Workflow)
    • Priority: Normal
    • Resolution: Done
    • Component/s: None
    • Labels:
      None

      Description

      We should define which python version, distribution, and modules we expect to have installed.

      Even though most modern distribution systems should be fine I suggest that we only support miniconda+products for now, just to minimize the unknowns. But if anyone want to use apt/pip/homebrew and has the following versions it should be fine. Full anaconda 5.2+ distributions should work, though several modules will need to be added.

      The MHS products currently require the following python modules. Obviously not all products require all modules; I'll state the main purpose/requirement for each. The listed versions are usually whatever gets installed by conda install on 2018-03-20; in the cases where I know that the version matters I'll add an exclamation point.

      In general there will be version conflicts, since we are installing individual modules. So this is more of a guide than a prescription. All versions are expected to be upgradable.

      Nearly all modules include sub-modules dependencies, which are not listed.

      The absolutely essential packages for all actors are:

      • python: 3.6! – asyncio is stable and supported from 3.6
      • twisted: 17.9 – for tron_actorcore
      • ply: 3.11! – for all tron_actorcore parsing

      On top of those, various packages require sets of the following:

      • dnspython: 1.16 - for SPS actors, at least.
      • numpy: 1.14 – for the detector readouts
      • cython: 0.27! - for the detector readouts, several others.
      • pyserial: 3.4 – for many device controlling actors, even non-serial ones.
      • future: 0.16! – only necessary for code upgraded from python2
      • astropy: 3.0.1 – import astropy.io.fits as pyfits
      • fitsio: 0.9.11! (from pip) – pyfits can be too inefficient for the H4 ramps or on small machines.
      • ruaml_yaml: 0.15.35 – ics_config, others.
        This is a painful choice: pyyaml is moribund, ruaml_yamel is on bitbucket and has a new API. Not obvious.
      • psycopg2-binary: 2.7.4 (from pip) – This has switched to a slightly confusing "binary" install.
      • qt: 5.9.5 – for any pyqt GUIs with actorcore parts
      • pyqt: 5.9.5 – same
      • qt5reactor: 0.5 (from pip) – for any pyqt GUIs with actorcore parts
      • matplotlib: 2.2 – for various GUIs.
      • fysom: 2.1.5 – for FSMs in tron_actorcore
      • sqlalchemy: 1.2.10 – for ics_archiver, any querying code (ics_sps_engineering_stuff, etc.
      • gitpython: 2.1.11 – for the version keys.
      • redis-py: 3.5.3 – for gen2 status streaming. Also underlying redis pakage
      • msgpack: 1.0.2 (from pip) – for gen2 status streaming
      • pymongo: 3.11.3 (from pip) – for gen2 status streaming
      • ginga : 3.10 (from pip) - for real time displau

      The following have been added to the root environment but should perhaps have been put into an different one. Jupyter and opencv have impressive dependency lists.

      • jupyter: 1.0.0 – for notebooks
      • scipy: 1.1.0 – just because people do use it.
      1. - opencv: 3.4.1 – for MCS visualization, at least.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                cloomis cloomis
                Reporter:
                cloomis cloomis
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: