代码之家  ›  专栏  ›  技术社区  ›  KJQ

无法在embedded Jetty->ImportError中使用Jython导入“logging”模块:找不到特定于操作系统的模块

  •  0
  • KJQ  · 技术社区  · 14 年前

    只要我不尝试使用任何标准库(如“logging”),我的脚本就可以正常工作。每当我尝试导入一个标准库时,它都会失败,只有“ImportError”例外

    我得到的例外是:

      File "<string>", line 1, in <module>
      File "c:\home\work\sample\content\helloworld\helloworld.py", line 10, in <module>
        import logging
      File "c:\home\work\sample\content\Lib\logging\__init__.py", line 29, in <module>
        import sys, os, types, time, string, cStringIO, traceback
      File "c:\home\work\sample\content\Lib\os.py", line 119, in <module>
        raise ImportError, 'no os specific module found'
    ImportError: no os specific module found
    
        at org.python.core.PyException.fillInStackTrace(PyException.java:70)
        at java.lang.Throwable.<init>(Throwable.java:181)
        at java.lang.Exception.<init>(Exception.java:29)
        at java.lang.RuntimeException.<init>(RuntimeException.java:32)
        at org.python.core.PyException.<init>(PyException.java:46)
        at org.python.core.PyException.doRaise(PyException.java:200)
        at org.python.core.Py.makeException(Py.java:1159)
        at org.python.core.Py.makeException(Py.java:1163)
        at os$py.f$0(c:\home\work\sample\content\Lib\os.py:692)
        at os$py.call_function(c:\home\work\sample\content\Lib\os.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.imp.createFromCode(imp.java:325)
        at org.python.core.imp.createFromPyClass(imp.java:144)
        at org.python.core.imp.loadFromSource(imp.java:504)
        at org.python.core.imp.find_module(imp.java:410)
        at org.python.core.imp.import_next(imp.java:620)
        at org.python.core.imp.import_first(imp.java:650)
        at org.python.core.imp.import_name(imp.java:741)
        at org.python.core.imp.importName(imp.java:791)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1236)
        at org.python.core.PyObject.__call__(PyObject.java:367)
        at org.python.core.__builtin__.__import__(__builtin__.java:1207)
        at org.python.core.__builtin__.__import__(__builtin__.java:1190)
        at org.python.core.imp.importOne(imp.java:802)
        at logging$py.f$0(c:\home\work\sample\content\Lib\logging\__init__.py:1372)
        at logging$py.call_function(c:\home\work\sample\content\Lib\logging\__init__.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.imp.createFromCode(imp.java:325)
        at org.python.core.imp.createFromPyClass(imp.java:144)
        at org.python.core.imp.loadFromSource(imp.java:504)
        at org.python.core.imp.find_module(imp.java:410)
        at org.python.core.imp.import_next(imp.java:620)
        at org.python.core.imp.import_first(imp.java:650)
        at org.python.core.imp.import_name(imp.java:741)
        at org.python.core.imp.importName(imp.java:791)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1236)
        at org.python.core.PyObject.__call__(PyObject.java:367)
        at org.python.core.__builtin__.__import__(__builtin__.java:1207)
        at org.python.core.__builtin__.__import__(__builtin__.java:1190)
        at org.python.core.imp.importOne(imp.java:802)
        at helloworld.helloworld$py.f$0(c:\home\work\sample\content\helloworld\helloworld.py:19)
        at helloworld.helloworld$py.call_function(c:\home\work\sample\content\helloworld\helloworld.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.imp.createFromCode(imp.java:325)
        at org.python.core.imp.createFromPyClass(imp.java:144)
        at org.python.core.imp.loadFromSource(imp.java:504)
        at org.python.core.imp.find_module(imp.java:410)
        at org.python.core.PyModule.impAttr(PyModule.java:109)
        at org.python.core.imp.import_next(imp.java:622)
        at org.python.core.imp.import_name(imp.java:761)
        at org.python.core.imp.importName(imp.java:791)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1236)
        at org.python.core.PyObject.__call__(PyObject.java:367)
        at org.python.core.__builtin__.__import__(__builtin__.java:1207)
        at org.python.core.imp.importFromAs(imp.java:869)
        at org.python.core.imp.importFrom(imp.java:845)
        at org.python.pycode._pyx1.f$0(<string>:1)
        at org.python.pycode._pyx1.call_function(<string>)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.Py.runCode(Py.java:1197)
        at org.python.core.Py.exec(Py.java:1241)
        at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:138)
    

    from java.util import Random
    from java.util import Date
    
    import sys
    
    print(sys.path)
    print(sys.builtin_module_names)
    
    import logging
    
    logging.basicConfig(level=logging.WARNING)
    logger1 = logging.getLogger('aaa') 
    logger1.warning('************* This message comes from one module') 
    
    def say_hello():
            return 'hello world1'
    

    到目前为止,我已经尝试了以下方法,但没有任何效果:

    • 在我的类路径中包括'Lib'目录的zip
    • 设置解释器时硬编码“Lib”路径。

    谢谢。

    KJQ公司

    1 回复  |  直到 14 年前
        1
  •  2
  •   KJQ    14 年前

    我想现在我已经找到了我自己问题的答案。。。