Как установить 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, Но все импорта находятся в верхней части вашего сценария.

Другие вопросы по тегам