私は 3 つの 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
C/C++ などの言語で前処理が行われるように、コード [ ]をインポートする方法はありcontrol1
ますか?つまり、その場所のコードがステートメントの場所に「貼り付け」られます。