我有一个模块“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