2013-02-27 68 views
1

是否有一种工具可以自动将Python中的绝对导入重写为相对的导入?将绝对导入重写为相对的工具

我想为应用程序提供插件,并且此插件需要并包含pygments(使用绝对导入)。所以我想重写pygments代码而不用手工完成任何事情。

该插件可以添加一个项目到sys.path包含pygments,但我想避免这一点。

+0

正则表达式替换文件? – shibormot 2013-02-27 10:12:12

+0

添加路径到'sys.path'有问题吗? – freakish 2013-02-27 10:29:48

+0

尝试使用os.path.relpath和imp模块的组合。请参阅http://docs.python.org/2/library/os.path.html#os.path.relpath和http://docs.python.org/2/library/imp.html。如果您提供一些代码示例,它会更有用。 – alecxe 2013-02-27 10:44:01

回答

0

chuckmove可能适合你。它是一种工具,可以让您在整个源代码树中递归重写导入以引用模块的新位置。

chuckmove --old sound.utils --new media.sound.utils src 

...这下降到SRC,并重写那些进口sound.utils导入media.sound.utils,而不是语句。它支持所有的Python导入格式。即from x import y,import x.y.z as w