Какова рекомендация стиля PEP8 для импорта локальных функций?
PEP8 требует, чтобы вы поместили свои импорта в верхнюю часть кода, что позволяет читателю увидеть, что вы импортируете, в одном месте.
Однако, если у вас есть локальное хранилище для функций, чтобы импортировать их, вы должны сначала изменить текущий каталог.
Если вы попытаетесь изменить свой каталог, то получите нарушение PEP8, потому что ваш импорт не все в одном месте
import sys
import pandas as pd
sys.path.insert(0, r'local\path')
from local_functions import function_1
Я понимаю, что "Глупая последовательность - это хобгоблин маленьких умов", и если мне придется иметь дело с нарушением PEP8, это нормально.
Я просто представляю, что есть реальное решение этой проблемы, так как многие люди должны писать функции и импортировать их.
Есть ли способ импортировать локально сохраненные функции, которые не создают нарушения PEP8?
Изменить: как отмечено здесь: /questions/34743198/pycharm-pokazyivaet-oshibku-nerazreshennyih-ssyilok-dlya-dopustimogo-koda/34743208#34743208
# noinspection PyUnresolvedReferences
from local_functions import function_1 # noqa: E402
Обратите внимание, что вы намеренно нарушаете PEP8, а также не проверяете неразрешенные ссылки.
1 ответ
Это будет зависеть от обстоятельств, но если это только для удовлетворения линтера, вы могли бы поместить свой импорт в блок try/ Кроме?
import sys
import pandas as pd
try:
from local_functions import function_1
except ModuleNotFoundError:
sys.path.insert(0, r'local\path')
from local_functions import function_1
В качестве альтернативы вы можете использовать относительный или абсолютный импорт, указав расположение вашего модуля относительно папки вашего проекта или абсолютный путь к вашему HD.