gee-community/geemap

AttributeError: module 'tornado.ioloop' has no attribute '_Selectable'

jerrodlessel opened this issue · 1 comments

Environment Information

Please run the following code on your computer and share the output with us so that we can better debug your issue:

import geemap
geemap.Report()

When I type import geemap now I get the following error:
`---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in
----> 1 import geemap
2 geemap.Report()

23 frames
/usr/local/lib/python3.7/dist-packages/geemap/init.py in
29 from .foliumap import *
30 else:
---> 31 from .geemap import *
32
33 # if in_colab_shell():

/usr/local/lib/python3.7/dist-packages/geemap/geemap.py in
23 from .timelapse import *
24 from .osm import *
---> 25 from .plot import *
26
27 from . import examples

/usr/local/lib/python3.7/dist-packages/geemap/plot.py in
1 import pandas as pd
----> 2 import plotly.express as px
3
4 from .common import *
5

/usr/local/lib/python3.7/dist-packages/plotly/express/init.py in
13 )
14
---> 15 from ._imshow import imshow
16 from ._chart_types import ( # noqa: F401
17 scatter,

/usr/local/lib/python3.7/dist-packages/plotly/express/_imshow.py in
9
10 try:
---> 11 import xarray
12
13 xarray_imported = True

/usr/local/lib/python3.7/dist-packages/xarray/init.py in
----> 1 from . import testing, tutorial, ufuncs
2 from .backends.api import (
3 load_dataarray,
4 load_dataset,
5 open_dataarray,

/usr/local/lib/python3.7/dist-packages/xarray/tutorial.py in
11 import numpy as np
12
---> 13 from .backends.api import open_dataset as open_dataset
14 from .backends.rasterio
import open_rasterio as _open_rasterio
15 from .core.dataarray import DataArray

/usr/local/lib/python3.7/dist-packages/xarray/backends/init.py in
4 formats. They should not be used directly, but rather through Dataset objects.
5 """
----> 6 from .cfgrib_ import CfGribDataStore
7 from .common import AbstractDataStore, BackendArray, BackendEntrypoint
8 from .file_manager import CachingFileManager, DummyFileManager, FileManager

/usr/local/lib/python3.7/dist-packages/xarray/backends/cfgrib_.py in
14 _normalize_path,
15 )
---> 16 from .locks import SerializableLock, ensure_lock
17 from .store import StoreBackendEntrypoint
18

/usr/local/lib/python3.7/dist-packages/xarray/backends/locks.py in
11
12 try:
---> 13 from dask.distributed import Lock as DistributedLock
14 except ImportError:
15 DistributedLock = None

/usr/local/lib/python3.7/dist-packages/dask/distributed.py in
9
10 try:
---> 11 from distributed import *
12 except ImportError as e:
13 if e.msg == "No module named 'distributed'":

/usr/local/lib/python3.7/dist-packages/distributed/init.py in
5
6 from ._version import get_versions
----> 7 from .actor import Actor, ActorFuture
8 from .client import (
9 Client,

/usr/local/lib/python3.7/dist-packages/distributed/actor.py in
3 import threading
4
----> 5 from .client import Future
6 from .protocol import to_serialize
7 from .utils import iscoroutinefunction, sync, thread_state

/usr/local/lib/python3.7/dist-packages/distributed/client.py in
57
58 from . import versions as version_module # type: ignore
---> 59 from .batched import BatchedSend
60 from .cfexecutor import ClientExecutor
61 from .core import (

/usr/local/lib/python3.7/dist-packages/distributed/batched.py in
8 from dask.utils import parse_timedelta
9
---> 10 from .core import CommClosedError
11 from .metrics import time
12

/usr/local/lib/python3.7/dist-packages/distributed/core.py in
26
27 from . import profile, protocol
---> 28 from .comm import (
29 Comm,
30 CommClosedError,

/usr/local/lib/python3.7/dist-packages/distributed/comm/init.py in
44
45
---> 46 _register_transports()

/usr/local/lib/python3.7/dist-packages/distributed/comm/init.py in _register_transports()
18 import dask.config
19
---> 20 from . import inproc, ws
21
22 tcp_backend = dask.config.get("distributed.comm.tcp.backend")

/usr/local/lib/python3.7/dist-packages/distributed/comm/ws.py in
9 from ssl import SSLError
10
---> 11 from tornado import web
12 from tornado.httpclient import HTTPClientError, HTTPRequest
13 from tornado.httpserver import HTTPServer

/usr/local/lib/python3.7/dist-packages/tornado/web.py in
89 from tornado import escape
90 from tornado import gen
---> 91 from tornado.httpserver import HTTPServer
92 from tornado import httputil
93 from tornado import iostream

/usr/local/lib/python3.7/dist-packages/tornado/httpserver.py in
30
31 from tornado.escape import native_str
---> 32 from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters
33 from tornado import httputil
34 from tornado import iostream

/usr/local/lib/python3.7/dist-packages/tornado/http1connection.py in
32 from tornado import gen
33 from tornado import httputil
---> 34 from tornado import iostream
35 from tornado.log import gen_log, app_log
36 from tornado.util import GzipDecompressor

/usr/local/lib/python3.7/dist-packages/tornado/iostream.py in
207
208
--> 209 class BaseIOStream(object):
210 """A utility class to write to and read from a non-blocking file or socket.
211

/usr/local/lib/python3.7/dist-packages/tornado/iostream.py in BaseIOStream()
283 self._closed = False
284
--> 285 def fileno(self) -> Union[int, ioloop._Selectable]:
286 """Returns the file descriptor for this stream."""
287 raise NotImplementedError()

AttributeError: module 'tornado.ioloop' has no attribute '_Selectable'`

What I Did

I did the `!pip3 install geemap` (also tried `!pip install geemap`) and after I ran that twice I typed `import geemap` like normal but after this weekend it has just given me the above error.

You need to restart the runtime after installation