Skip to content

Could not compile on 16.04.5 LTS Xenial Xerus (Was: How to transcompile python code that have logging or psutil libraries imported.) #112

Open
@nutant-h

Description

@nutant-h

I am trying to transcompile a Python file into Go.

Following the README file I installed grumpy, then tested it;
#echo 'import sys; print sys.version' | grumprun
2.7.13
works fine.

My python code needs logging and psutil libraries imported;
but executing echo 'import logging, psutil, sys; print sys.version' | grumprun throws the following error.

# echo 'import logging, psutil, sys; print sys.version' | grumprun
Traceback (most recent call last):
  File "/root/grumpy/grumpy-runtime-src/build/bin/grumprun", line 8, in <module>
    sys.exit(cli.main())
  File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/cli.py", line 84, in run
    result = grumprun.main(stream=stream, modname=modname, pep3147=pep3147, clean_tempfolder=(not keep_main))
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumprun.py", line 114, in main
    transpiled = grumpc.main(stream, modname=modname, pep3147=True, recursive=True)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumpc.py", line 166, in main
    _recursively_transpile(import_objects)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumpc.py", line 110, in _recursively_transpile
    main(stream=open(imp_obj.script), modname=name, pep3147=True, recursive=True, return_result=False)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumpc.py", line 166, in main
    _recursively_transpile(import_objects)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumpc.py", line 110, in _recursively_transpile
    main(stream=open(imp_obj.script), modname=name, pep3147=True, recursive=True, return_result=False)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumpc.py", line 156, in main
    deps, import_objects = _collect_deps(script, modname, pep3147_folders, from_cache=(not will_refresh))
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/grumpc.py", line 77, in _collect_deps
    deps, import_objects = pydeps.main(script, modname, with_imports=True) #, script, gopath)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/pydeps.py", line 35, in main
    imports = imputil.collect_imports(modname, script, gopath, package_dir=package_dir)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/compiler/imputil.py", line 216, in collect_imports
    collector.visit(mod)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 41, in visit
    return self._visit_one(obj)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 34, in _visit_one
    return self.generic_visit(node)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 27, in generic_visit
    self.visit(getattr(node, field_name))
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 39, in visit
    return [self.visit(elt) for elt in obj]
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 41, in visit
    return self._visit_one(obj)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 34, in _visit_one
    return self.generic_visit(node)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 27, in generic_visit
    self.visit(getattr(node, field_name))
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 39, in visit
    return [self.visit(elt) for elt in obj]
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 41, in visit
    return self._visit_one(obj)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 32, in _visit_one
    return getattr(self, visit_attr)(node)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/compiler/imputil.py", line 205, in visit_ImportFrom
    self.imports.extend(self.importer.visit(node))
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 41, in visit
    return self._visit_one(obj)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/vendor/pythonparser/algorithm.py", line 32, in _visit_one
    return getattr(self, visit_attr)(node)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/compiler/imputil.py", line 119, in visit_ImportFrom
    imp = self._resolve_import(node, node.module)
  File "/root/grumpy/grumpy-tools-src/grumpy_tools/compiler/imputil.py", line 170, in _resolve_import
    raise util.ImportError(node, 'no such module: {} (script: {})'.format(modname, self.script))
grumpy_tools.compiler.util.ImportError: line 15: no such module: _codecs (script: /usr/lib/python2.7/codecs.py)

I am sure there must be a way to use other libraries. How can I use logging library?
I am just not able to find the documentations, need help.

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions