2010-03-16 1 views
0

У меня есть модуль «B», я хочу запустить его из сценария «C», и я хочу называть глобальные переменные в «B», как они были в корне «C». Еще одна проблема, если я импортировал sys в «B», когда я запускаю «C» не видит sysКак вы запускаете скрипты python из другого скрипта и имеете свой корень в моем корне?

# NameError: global name 'sys' is not defined #

Что мне делать?

+1

Выглядит вполне Hacky. Может быть, если вы дадите нам реальный пример, у нас будут идеи о том, как это сделать правильно? –

+1

В общем, вы не хотите этого делать. Модули отлично подходят для хранения объектов в отдельном пространстве имен из вашей основной программы. –

ответ

5

При импорте модуля B (например, import B) каждая строка в B будет интерпретирована. Я предполагаю, что это то, что вы имеете в виду, когда говорите, что хотите запустить его. Чтобы обратиться к членам в пространстве имен B, вы можете получить их как:

B.something_defined_in_B.

Если вы хотите использовать sys явно в C, вам необходимо будет импортировать его в пределах C.

1

в PYTHON_PATH?

если нет, то в сценарий инициализации языка C .py

import os, sys 
sys.path.append('/PATH/TO/MODULE/B') 

затем, в модуле C

from B import * 
something_defined_in_B() 

 Смежные вопросы

  • Нет связанных вопросов^_^