我有以下標準導入過程:如何從函數內執行`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)。 –