Когда использовать sys.path.append и при изменении% PYTHONPATH% достаточно

Итак, оказалось, что у меня отсутствует точка с запятой из моего определения PYTHONPATH. Но это только дошло до меня. по какой-то причине мой script НЕ работал как запланированная задача (на WinXP), пока я явно не добавил каталог из PYTHONPATH в начало моего script.

Вопрос: Когда мне нужно явно добавить что-то к моему пути и когда я могу просто полагаться на переменные среды?

Ответ 1

Возможно, вы не выполняете запланированную задачу под правильными учетными данными (имя входа). Когда вы определяете переменные среды в диалоговом окне "Свойства системы", они могут быть либо на уровне пользователя, либо на уровне системы. Если вы определили PYTHONPATH как пользовательский уровень, тогда ваша запланированная задача должна выполняться как пользователь для правильной установки. Я считаю, что его системный уровень будет означать, что он будет применяться ко всем пользователям, если у них нет собственного значения.

Ниже приведен скриншот, показывающий, где устанавливаются переменные среды. Это похоже как в Windows XP, так и в Windows 7. Верхняя половина правого диалогового окна показывает текущие настройки уровня пользователя, а нижняя половина содержит список всех системных уровней.

screenshot of environment variable dialog box

Если PYTHONPATH отображается в списке имен в верхней группе уровня пользователя, вы можете эффективно перенести его на другой нижний, сначала удалив, а затем добавив одно и то же имя плюс связанное значение к нижнему набору уровня системы, Чтобы сохранить небольшую типизацию, вы можете отредактировать переменную уровня пользователя до. Удалите ее, чтобы получить возможность сначала скопировать текущее значение, а затем Отменить операцию. Таким образом, при создании новой копии на системном уровне вы сможете просто вставить в нее скопированное значение.

Ответ 2

Если другие модули принадлежат к одному и тому же пакету, вы должны нести ответственность за их поиск, если они не сохраняются в обычном формате (т.е. добавьте путь с помощью sys).

Если другие модули настраиваются пользователем, пользователь должен указать установку путь через PYTHONPATH