UW-Hydro/MetSim

environment.yml to specify python>=3.5 and python<3.10

danhamill opened this issue · 1 comments

Today I created the metsim environment from the .yml file in this repo and anaconda chose python version 3.10.

When you try and import from metsim import MetSim you get the following import error:

ImportError                               Traceback (most recent call last)
c:\workspace\Chinle\scripts\metsim.ipynb Cell 2' in <cell line: 6>()
      [4](vscode-notebook-cell:/c%3A/workspace/Chinle/scripts/metsim.ipynb#ch0000000?line=3) from shapely.geometry import mapping
      [5](vscode-notebook-cell:/c%3A/workspace/Chinle/scripts/metsim.ipynb#ch0000000?line=4) import geopandas as gpd
----> [6](vscode-notebook-cell:/c%3A/workspace/Chinle/scripts/metsim.ipynb#ch0000000?line=5) from metsim import MetSim
      [7](vscode-notebook-cell:/c%3A/workspace/Chinle/scripts/metsim.ipynb#ch0000000?line=6) from core.utils import Load_Environment
      [8](vscode-notebook-cell:/c%3A/workspace/Chinle/scripts/metsim.ipynb#ch0000000?line=7) cur_dir = Load_Environment().cur_dir

File C:\Anaconda3\envs\metsim\lib\site-packages\metsim\__init__.py:5, in <module>
      [1](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/__init__.py?line=0) """
      [2](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/__init__.py?line=1) MetSim global module
      [3](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/__init__.py?line=2) """
----> [5](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/__init__.py?line=4) from .metsim import MetSim
      [7](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/__init__.py?line=6) from ._version import get_versions
      [8](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/__init__.py?line=7) __version__ = get_versions()['version']

File C:\Anaconda3\envs\metsim\lib\site-packages\metsim\metsim.py:38, in <module>
     [36](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/metsim.py?line=35) import warnings
     [37](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/metsim.py?line=36) import time as tm
---> [38](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/metsim.py?line=37) from collections import Iterable, OrderedDict
     [39](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/metsim.py?line=38) from getpass import getuser
     [41](file:///c%3A/Anaconda3/envs/metsim/lib/site-packages/metsim/metsim.py?line=40) import numpy as np

ImportError: cannot import name 'Iterable' from 'collections' (C:\Anaconda3\envs\metsim\lib\collections\__init__.py)

Apparently Iterable has moved to collections.abc in python 3.10

It would be nice if you could edit the environment.yml to specify python>3.5 and python<3.10.

Hi @danhamill - thanks for filing this issue! Instead of limiting the python version to be <3.10 I've fixed the import so that it should work for any version of python >3.0. Let me know if this is still an issue, otherwise I'll close this one for now!