radical-cybertools / radical.analytics

Analytics for RADICAL-Cybertools
Other
1 stars 1 forks source link

Error when import radical.analytics #131

Closed iparask closed 3 years ago

iparask commented 4 years ago

I am using a Jupiter notebook to import radical.analyitcs and I am getting the following error:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-1-521ddd1a4914> in <module>
      1 import radical.utils as ru
----> 2 import radical.analytics as ra
      3 from glob import glob

~/anaconda3/envs/campaign/lib/python3.8/site-packages/radical/analytics/__init__.py in <module>
     22 version = version_short
     23 
---> 24 logger = ru.Logger('radical.analytics')
     25 logger.info('radical.analytics    version: %s' % version_detail)
     26 

~/anaconda3/envs/campaign/lib/python3.8/site-packages/radical/utils/logger.py in __init__(self, name, ns, path, targets, level, verbose)
    282             elif t in ['-', '1', 'stdout']: h = ColorStreamHandler(sys.stdout)
    283             elif t in ['=', '2', 'stderr']: h = ColorStreamHandler(sys.stderr)
--> 284             elif t in ['.']               : h = FSHandler("%s/%s.log" % (p, n))
    285             elif t.startswith('/')        : h = FSHandler(t)
    286             else                          : h = FSHandler("%s/%s"     % (p, t))

~/anaconda3/envs/campaign/lib/python3.8/site-packages/radical/utils/logger.py in __init__(self, target)
    172             pass  # exists
    173 
--> 174         logging.FileHandler.__init__(self, target)
    175 
    176 

~/anaconda3/envs/campaign/lib/python3.8/logging/__init__.py in __init__(self, filename, mode, encoding, delay)
   1141             self.stream = None
   1142         else:
-> 1143             StreamHandler.__init__(self, self._open())
   1144 
   1145     def close(self):

~/anaconda3/envs/campaign/lib/python3.8/logging/__init__.py in _open(self)
   1170         Return the resulting stream.
   1171         """
-> 1172         return open(self.baseFilename, self.mode, encoding=self.encoding)
   1173 
   1174     def emit(self, record):

OSError: [Errno 30] Read-only file system: '//radical.analytics.log

Would it make sense to specify the path the logger writes as ./?

andre-merzky commented 4 years ago

I think the problem is that your workdir is / - the default location is ./ already, so specifying ./ as path will result in the same error.

andre-merzky commented 4 years ago
(ve3)  rivendell  merzky  //tmp   $ cd /
(ve3)  rivendell  merzky  /   $ python -c 'import radical.analytics'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/merzky/radical/radical.analytics.devel/ve3/lib/python3.8/site-packages/radical/analytics/__init__.py", line 24, in <module>
    logger = ru.Logger('radical.analytics')
  File "/home/merzky/radical/radical.analytics.devel/ve3/lib/python3.8/site-packages/radical/utils/logger.py", line 286, in __init__
    elif t in ['.']               : h = FSHandler("%s/%s.log" % (p, n))
  File "/home/merzky/radical/radical.analytics.devel/ve3/lib/python3.8/site-packages/radical/utils/logger.py", line 174, in __init__
    logging.FileHandler.__init__(self, target)
  File "/usr/lib/python3.8/logging/__init__.py", line 1143, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.8/logging/__init__.py", line 1172, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '//radical.analytics.log'
(ve3)  rivendell  merzky  /  1   $ cd /tmp/
(ve3)  rivendell  merzky  //tmp   $ python -c 'import radical.analytics'
(ve3)  rivendell  merzky  //tmp   $ l radical.analytics.log 
-rw-rw-r-- 1 merzky merzky 294 Jul 31 22:50 radical.analytics.log
iparask commented 4 years ago

So this error happened only with the Jupyter notebook and not when I tried to import it through python interpreter. My path was not / fortunately!

I made the following change locally and it worked:

logger = ru.Logger('radical.analytics', path=os.getcwd())

It may have to do with how a notebook launches on a Mac.

andre-merzky commented 4 years ago

The default log dir is set here - maybe $PWD is not set in your shell env?

mturilli commented 4 years ago

@iparask I do not have that issue on Mac with notebooks.

mturilli commented 4 years ago

@iparask should we close this or do you still have that issue?