Как установить PATH до того, как импорт произойдет хорошим способом?
У меня есть скрипт Python, который использует openslide-python.
openslide-python требует, чтобы двоичные файлы OpenSlide находились в пути поиска DLL в Windows.
Я планирую распространять свое приложение в будущем, и я не хочу, чтобы пользователи загружали двоичные файлы OpenSlide и устанавливали PATH. Поэтому я собираюсь включить двоичные файлы OpenSlide в свое приложение.
Проблема в том, что PATH должен быть установлен до того, как произойдет импорт из OpenSlide.
В настоящее время у меня есть следующий код (упрощенно *):
import os
from io import *
os.environ['PATH'] = os.path.dirname(os.path.realpath(__file__)) + os.sep + 'openslide' + os.pathsep + os.environ[
'PATH']
from openslide import *
Я понимаю, что это не соответствует PEP 8, потому что у меня импорт на уровне модуля не в начале файла.
Есть идеи, как сделать это красиво?
1 ответ
Создать файл my_path_helper.py
:
os.environ['PATH'] = os.path.dirname(os.path.realpath(__file__)) + os.sep + 'openslide' + os.pathsep + os.environ[
'PATH']
и поместите его в тот же каталог, что и ваш скрипт. Теперь импортируйте это:
import os
from io import *
import my_path_helper
from openslide import *
Это все еще немного нарушает PEP8, потому что он импортирует ваш собственный модуль перед сторонним модулем openslide
, Но все импорта находятся в верхней части вашего сценария.