Краткий ответ: вам нужно установить PYTHONPATH для включения C:\py\twisted
.
Длинный ответ ...
Сценарий rpy - это в основном просто некоторый код Python, как и любой другой код Python. Таким образом, импорт в скрипте rpy работает так же, как импорт в любом другом коде Python. Для наиболее распространенного случая это означает, что каталоги в sys.path
посещаются один за другим по порядку, и если найден файл .py
, соответствующий импортированному имени, этот файл используется для определения модуля.
sys.path
в основном заполняется из статического определения, включая такие вещи, как C: \ Python26 \ Lib \ и из переменной окружения PYTHONPATH
. Тем не менее, есть еще одна вещь, о которой стоит знать. Когда вы запускаете "python", текущий рабочий каталог добавляется в начало sys.path
. При запуске "python C: \ foo \ bar \ baz.py", C:\foo\bar\' is added to the front of
sys.path . But when you run "twistd ...", nothing useful is added to
sys.path`.
Последнее поведение, вероятно, объясняет, почему ваши тесты работают, если вы запускаете скрипт rpy напрямую, или если вы запускаете python и пытаетесь импортировать модуль в интерактивном режиме, но терпите неудачу при использовании twistd. Добавление C:\py\twisted
к переменной среды PYTHONPATH
должно сделать модуль импортируемым, когда скрипт rpy запускается с сервера, который вы запускаете с twistd.