[INSTRM-306] Define python environment Created: 22/Mar/18 Updated: 09/Nov/22 Resolved: 22/Mar/18 |
|
| Status: | Open |
| Project: | Instrument control development |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Normal |
| Reporter: | cloomis | Assignee: | cloomis |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| 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:
On top of those, various packages require sets of the following:
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.
|
| Comments |
| Comment by Yoshida, Hiroshige [ 22/Mar/18 ] |
|
psycopg2 is required by ics_archiver. |
| Comment by shimono [ 02/May/18 ] |
|
cloomis what mean by "!" for version number? |
| Comment by Yoshida, Hiroshige [ 02/May/18 ] |
|
Both conda and pip now have a package called "psycopg2". So only "psycopg2" by conda? |
| Comment by hassan [ 03/May/18 ] |
|
Hi @shimono regarding the "!": Craig mentioned in the description that
so it refers to when that version number is important.
|
| Comment by cloomis [ 03/May/18 ] |
|
psycopg2 is deprecated, and is being replaced by psycopg2-binary. At least that's the way I read it. You certainly do not want both. |
| Comment by shimono [ 03/May/18 ] |
|
hassan i know, but not sure for lower values,,, like sys.version could be wrote as sys.version = (3, 6) or sys.version >= (3,6). (or (3,6,0) would not be the case, i suppose...) |
| Comment by hassan [ 03/May/18 ] |
|
I see shimono - thanks for the clarification! |
| Comment by Yoshida, Hiroshige [ 23/Aug/18 ] |
|
fysom is required for FSM in tron_actorcore |
| Comment by Yoshida, Hiroshige [ 23/Aug/18 ] |
|
FYI ruaml.yaml (not ruaml_yaml) >=0.15.52 are broken for me |
| Comment by cloomis [ 23/Aug/18 ] |
|
How, specifically? |
| Comment by Yoshida, Hiroshige [ 23/Aug/18 ] |
|
I get this error: Traceback (most recent call last): YAML files looks like this electronics_rack: Or, am I violating any YAML spec.??? |
| Comment by Yoshida, Hiroshige [ 23/Aug/18 ] |
|
Actually, it may not be an issue with ruamel.yaml. I am "munchifying" config as: config = munch.munchify(ruamel.yaml.YAML().load(open(args.config_file, 'r'))) Then I am getting the error above. However, the process round-trips and recreate a correct input config: ruamel.yaml.YAML().dump(munch.unmunchify(config), sys.stdout) ruamel.yaml.YAML().load() used to return a CommentedMap object; now it returns ordereddict Was off-topic - please ignore my last two comments |