我有一個模塊「B」,我想從腳本「C」運行它,我想在「B」中調用全局變量,就像它們在「C」根中一樣。另一個問題是,如果我進口的「B」 sys
當我運行「C」它不會看到sys
如何從其他腳本運行python腳本並將其根目錄放在根目錄下?
# NameError: global name 'sys' is not defined #
我該怎麼辦?
我有一個模塊「B」,我想從腳本「C」運行它,我想在「B」中調用全局變量,就像它們在「C」根中一樣。另一個問題是,如果我進口的「B」 sys
當我運行「C」它不會看到sys
如何從其他腳本運行python腳本並將其根目錄放在根目錄下?
# NameError: global name 'sys' is not defined #
我該怎麼辦?
當您導入模塊B
(如import B
)時,將會解釋B
中的每一行。我認爲這就是你說你想運行它時的意思。要引用B
的命名空間中的成員,可以獲取它們:
B.something_defined_in_B
。
如果您希望在C
中明確使用sys
,則還需要在C
之內導入它。
它在你的PYTHON_PATH中嗎?
如果不是,在腳本C的初始化的.py
import os, sys
sys.path.append('/PATH/TO/MODULE/B')
然後,在模塊C
from B import *
something_defined_in_B()
看起來相當哈克。也許如果你給我們一個真實的例子,我們將有想法如何以正確的方式做到這一點? – 2010-03-16 13:26:07
一般來說,你不想這樣做。模塊非常適合將對象保存在與主程序不同的命名空間中。 – 2010-03-16 15:26:41