我有三个 python 脚本job.py
,control1
和control2
该job.py
文件是不同项目的一部分,并假设我没有修改它的权限。
作业.py
...
execfile(self.control, global_control_vars, global_control_vars)
...
self.control
保存到的绝对路径control1
控制1
import imp,os
a='path/to/control2'
imp.load_source('control2',a)
控制2
...
for i in tests:
job.run_test('pax', test = i, tag = i, archive = ARCHIVE)
...
现在的job
问题。control2中的在job.py的命名空间中。job.py
执行代码时,出现以下错误。
File "job.py", line 1170, in step_engine
execfile(self.control, global_control_vars, global_control_vars)
File "tests/linux-tools/control1", line 18, in <module>
imp.load_source('control',a)
File "tests/linux-tools/pax/control2", line 22, in <module>
job.run_test('pax', test = i, tag = i, archive = ARCHIVE)
NameError: name 'job' is not defined
(路径名称已缩短)
- 有什么方法可以将其带入执行位置
job
的名称空间?control1
control2
或者
- 有没有办法导入代码[
control2
],control1
就像在 C/C++ 等语言中进行预处理一样?也就是说,来自该位置的代码被“粘贴”在语句的位置。