我有以下标准导入过程:如何从函数内执行`import *`?
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
我怎样才能导入根模块从功能中,使得脚本的操作的结果是一样的上述from ROOT import *
程序?
你不应该需要做那些东西。这听起来像你在ROOT.py中没有正确的'main()'函数和'if __name__ =='__main __':'main()'。 –
@ PM2Ring感谢您的评论。 'ROOT.py'是一个模块,而不是脚本。它不具有'main'功能。另外,它是[ROOT](https://root.cern.ch/)框架的Python绑定基础结构,所以它不是我可以轻易更改的东西。我需要关注对脚本的更改,而不是模块。 – d3pd
啊,好的。如果可以的话,尽量避免[from import *](http://stackoverflow.com/questions/2386714/why-is-import-bad)。 –