Добавить путь к sys.path против PEP E402 - PullRequest
3 голосов
/ 17 мая 2019

Чтобы импортировать модуль, специфичный для проекта, где-нибудь на вашем диске, можно легко добавить этот каталог в sys.path:

import sys
sys.path.append(some_module_path)

import some_module

Однако последний импорт теперь нарушает PEP E402 (уровень модуля)импортировать не в начало файла ").По крайней мере, Spyder говорит мне об этом.Spyder здесь слишком требователен?

В spyder есть основная идея «проекта», где я предположил, что среды могут быть настроены специально для этого проекта.Однако я понятия не имею, как изменить, например, sys.path в зависимости от проекта spyder.

Как я могу изменить sys.path в проекте spyder?Или есть общий питонский способ решения этой проблемы?

Ответы [ 2 ]

2 голосов
/ 17 мая 2019

Вы можете поместить расширение sys.path в отдельный модуль, например, _paths.py.

Содержимое _paths.py:

import sys

sys.path.append(some_module_path)
sys.path.append(some_other_module_path)
# ...and so on...

И затем в вашем основном приложении:

import sys

import _paths
import some_module

some_module.some_func()

Это решение позволяет удобно разместить вашу "конфигурацию проекта" в одном месте (что облегчает ее поддержку в будущем) и соответствует как минимум PEP8 (включая E402) и правилам Pylint.

0 голосов
/ 17 мая 2019

Я знаю, что это не отвечает на вопрос, но может быть полезной информацией.

Вы можете импортировать этот модуль, напрямую указав его путь, без использования sys.path.append

В Python 3 это так же просто, как

import imp
some_module = imp.load_source('some_module', '/path/to/some_module.py')

Больше информации здесь: Как импортировать модуль с полным путем?

...