ImportError: No module named 'pyMicrodata' · Issue #574 · RDFLib/rdflib (original) (raw)

Under Python 3, invoking the microdata module can throw an uncaught ImportError exception "No module named 'pyMicrodata'", which is rather unexpected for what should be a common operation.

rdfpipe -w -i microdata https://ambrose.edu/resources/ambrose-archives
Traceback (most recent call last):
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/pyMicrodata/utils.py", line 297, in __init__
    self.location = urlparse.urljoin(self.data.geturl(),self.headers[URIOpener.CONTENT_LOCATION])
AttributeError: 'function' object has no attribute 'urljoin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/bin/rdfpipe", line 9, in <module>
    load_entry_point('rdflib==4.2.1', 'console_scripts', 'rdfpipe')()
  File "/lib/python3.4/site-packages/rdflib/tools/rdfpipe.py", line 181, in main
    outfile, opts.output_format, ns_bindings)
  File "/lib/python3.4/site-packages/rdflib/tools/rdfpipe.py", line 49, in parse_and_serialize
    graph.parse(fpath, format=use_format, **kws)
  File "/lib/python3.4/site-packages/rdflib/graph.py", line 1468, in parse
    location=location, file=file, data=data, **args)
  File "/lib/python3.4/site-packages/rdflib/graph.py", line 1041, in parse
    parser.parse(source, self, **args)
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/structureddata.py", line 306, in parse
    vocab_cache=vocab_cache)
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/structureddata.py", line 252, in _process
    orig_source, graph=graph, rdfOutput=False)
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/pyMicrodata/__init__.py", line 290, in graph_from_source
    if not rdfOutput : raise e
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/pyMicrodata/__init__.py", line 262, in graph_from_source
    if not rdfOutput : raise e
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/pyMicrodata/__init__.py", line 252, in graph_from_source
    input = self._get_input(name)
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/pyMicrodata/__init__.py", line 204, in _get_input
    url_request = URIOpener(name)
  File "/lib/python3.4/site-packages/rdflib/plugins/parsers/pyMicrodata/utils.py", line 308, in __init__
    from pyMicrodata import MicrodataError
ImportError: No module named 'pyMicrodata'