Как вы запускаете скрипты Python из других скриптов и у них есть корень в моем корне? - PullRequest
0 голосов
/ 16 марта 2010

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

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

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

Ответы [ 2 ]

5 голосов
/ 16 марта 2010

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

B.something_defined_in_B.

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

1 голос
/ 16 марта 2010

это у вас в PYTHON_PATH?

если нет, то в скрипте C init .py

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

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

from B import *
something_defined_in_B()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...