【发布时间】:2016-02-02 16:47:10
【问题描述】:
我有以下标准导入程序:
from ROOT import *
由于 ROOT 处理命令行选项和参数的方式,需要类似以下内容以避免搞砸脚本的命令行解析:
argv_tmp = sys.argv
sys.argv = []
from ROOT import *
sys.argv = argv_tmp
我需要在许多脚本中执行此操作。这个操作可能会改变,或者可能会有更好的方法,所以我想把这个过程集中在某个导入模块提供的单个函数中,以便将来更改过程。
def import_ROOT():
# magic
import os
import sys
import_ROOT()
import docopt
如何从函数中导入 ROOT 模块,以使脚本操作的结果与上述 from ROOT import * 过程的结果相同?
【问题讨论】:
-
你不应该做那些事。听起来您的 ROOT.py 中没有正确的
main()函数和if __name__ == '__main__':main()。 -
@PM2Ring 感谢您的评论。
ROOT.py是一个模块,而不是一个脚本。它没有main功能。此外,它是ROOT 框架的 Python 绑定基础结构,因此我无法轻易更改它。我需要关注脚本的更改,而不是模块的更改。 -
啊,好的。尽管如此,尽量避免from <module> import *,如果可以的话。
标签: python import root-framework pyroot