如何在导入发生之前设置PATH?

时间:2017-11-30 14:34:48

标签: python windows python-import openslide

我有一个使用openslide-python的Python脚本。

openslide-python需要OpenSlide binaries are in the DLL search path on Windows

我计划将来分发我的应用程序,我不希望用户下载OpenSlide二进制文件并设置PATH。所以我将在我的应用程序中包含OpenSlide二进制文件。

问题是必须在从OpenSlide导入任何内容之前设置PATH。

目前我有以下代码(简化为*):

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 个答案:

答案 0 :(得分: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之前导入了您自己的模块。但是所有导入都在您的脚本的顶部。