如何";继承;Python 2中的模块

如何";继承;Python 2中的模块,python,import,module,subprocess,python-2.x,Python,Import,Module,Subprocess,Python 2.x,我的问题很简单。我的目标如下-我想导入一些必要的模块一次,我希望子脚本也使用这些模块,而无需导入。换句话说,他们将能够使用在其父脚本中导入的模块。我想举个例子有助于理解 我有一个主脚本main.py,它可能看起来像这样 import os import subprocess import sys ... subprocess.call(["python", "script.py", arg1, arg2]) ... 并且script.py正在使用一些可以通过模块操作系统访问的功能(例如os.

我的问题很简单。我的目标如下-我想导入一些必要的模块一次,我希望子脚本也使用这些模块,而无需导入。换句话说,他们将能够使用在其父脚本中导入的模块。我想举个例子有助于理解

我有一个主脚本
main.py
,它可能看起来像这样

import os
import subprocess
import sys

...
subprocess.call(["python", "script.py", arg1, arg2])
...
并且
script.py
正在使用一些可以通过模块操作系统访问的功能(例如os.path.join(…))

是否可以避免在
script.py
中导入操作系统?

如果要“继承”环境,则可以使用来运行模块:

import os
import sys

# mangle sys.argv to pass arg1, arg2
# ...
# run
execfile('script.py') 

不可以。每个模块都必须导入它想要使用的模块。这是可以做到的(Python的动态性足以覆盖必要的部分)但是不应该这样做——Python的一个很好的特性是,只要查看模块的源代码,就可以跟踪每个名称的来源,除非有什么东西弄乱了
内置名和/或模块全局名称空间。