python3检查python2模块,反之亦然

python3检查python2模块,反之亦然,python,regex,python-2.7,python-3.x,inspect,Python,Regex,Python 2.7,Python 3.x,Inspect,我需要在.py文件中找到所有带有参数/签名的类及其方法。 有一些限制: 应在python2和python3下工作要扫描的文件是python2 文件不在python/系统路径中,并且可能不满足模块依赖关系导入可能失败 据我所知,由于上述不同的python版本等原因,这里不能使用ast、inspect、pyclbr等模块 re模块还有什么其他有用的地方吗?据我所知,类/函数/模块在您想要查找的内容方面没有任何重大更改,因此Python 2或Python 3 inspect模块中的任何一个都应该完成这

我需要在.py文件中找到所有带有参数/签名的类及其方法。 有一些限制:

应在python2和python3下工作要扫描的文件是python2

文件不在python/系统路径中,并且可能不满足模块依赖关系导入可能失败

据我所知,由于上述不同的python版本等原因,这里不能使用ast、inspect、pyclbr等模块


re模块还有什么其他有用的地方吗?

据我所知,类/函数/模块在您想要查找的内容方面没有任何重大更改,因此Python 2或Python 3 inspect模块中的任何一个都应该完成这项工作。regex无法完成这项工作。Python可以动态生成类/方法。我想ast模块可以。。。您不考虑它们的理由没有道理?您可以对Python 2和Python 3使用单独的语法,并使用解析器生成器创建您自己的解析器。关于这方面的一个好例子,请看一下lib2to3的代码。Python源代码包含一个文本文件,描述您正在查看的版本的语法。不要试图使用正则表达式来实现Python解析器。它不起作用。关于ast。它无法从python3解析python2模块。例如,从python3解析它会失败,并出现错误:File/usr/local/cillar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/ast.py,第35行,在parse return compilesource中,filename,mode,PyCF_ONLY_ast File,第637行first,second=[self.\u convert_-to_-stringi For-in-in-first,second]^SyntaxError:无效的SyntaxInspect。它需要导入模块,因为它“检查活动对象”,对吗?在我的情况下,我无法导入要检查的模块。import语句失败,原因是:>>>import BuiltIn Traceback最新调用last:File,第1行,文件BuiltIn.py,第20行,in from robot.api导入记录器ImportError:没有名为robot.api的模块