我有一个Python脚本,需要在我的Java应用程序中运行。我试图从jython执行它,但是我有一个奇怪的问题:

from sys import getdlopenflags

我得到:

Traceback (most recent call last): File "<stdin>", line 1, in <module>ImportError: cannot import name getdlopenflags

当我尝试检查sys的内容时:

import sys

dir(sys)

输出为:

['JYTHON_DEV_JAR', 'JYTHON_JAR', 'PYTHON_CACHEDIR', 'PYTHON_CACHEDIR_SKIP', 'PYTHON_CONSOLE_ENCODING', '__delattr__', '__dict__', '__displayhook__', '__excepthook__', '__findattr_ex__', '__name__', '__new__', '__rawdir__', '__setattr__', '__stderr__', '__stdin__', '__stdout__', '_getframe', '_jy_interpreter', '_systemRestart', 'add_classdir', 'add_extdir', 'add_package', 'argv', 'builtin_module_names', 'builtins', 'byteorder', 'classDictInit', 'classLoader', 'cleanup', 'copyright', 'currentWorkingDir', 'defaultencoding', 'determinePlatform', 'displayhook', 'doInitialize', 'exc_clear', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'filesystemencoding', 'getBaseProperties', 'getBuiltin', 'getBuiltins', 'getClassLoader', 'getCurrentWorkingDir', 'getDefaultBuiltins', 'getPath', 'getPathLazy', 'getPlatform', 'getWarnoptions', 'getdefaultencoding', 'getfilesystemencoding', 'getrecursionlimit', 'hexversion', 'initialize', 'isPackageCacheEnabled', 'last_traceback', 'last_type', 'last_value', 'maxint', 'maxunicode', 'meta_path', 'minint', 'modules', 'packageManager', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'recursionlimit', 'registerCloser', 'registry', 'setBuiltins', 'setClassLoader', 'setCurrentWorkingDir', 'setPlatform', 'setWarnoptions', 'setprofile', 'setrecursionlimit', 'settrace', 'shadow', 'stderr', 'stdin', 'stdout', 'subversion', 'toString', 'unregisterCloser', 'version', 'version_info', 'warnoptions']

显然缺少getdlopenflags。是否可以在jython中使用此功能(我有最新版本-2.5.2)根据http://jython.org/docs/library/sys.html上的文档,存在sys.getdlopenflags。

感谢帮助

最佳答案

在文档中说“ Availability:Unix”。 Jython文档似乎已从CPython文档复制了未更改的内容。因此,此功能仅在Unix安装中可用。 Jython可能根本没有它-我对Java不够了解,但是由于Java可能与平台无关,因此它不支持系统特定的功能。

关于java - Jython缺少sys模块中的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5604378/

10-16 12:12