添加 python 包子目录到系统路径

Add python package subdirectory to system path

我有一个 python 包,其结构如下:

Package
├───ExternalModules
│   ├───external_module.exe
│   └───external_module_importer.py
└───setup.py

该软件包随 setup.py 文件(“pip install ./”)一起安装,其中有一个 library/dependency 依赖于 executable_module.exe 到 运行.

我不希望我的用户必须下载模块并手动添加路径,所以我想将它放在我的包中并自动将其添加到系统路径(在包安装期间或 运行次).

目前,我有这个 external_module_importer.py 试图通过以下方式导入它:

import os
import sys

def add_module_to_path():
    filedir = os.path.dirname(os.path.abspath(__file__))
    sys.path.append(filedir)

但是即使我调用这个函数,依赖.exe文件的外部依赖也会给我以下错误:

FileNotFoundError: external_module not found or not executable, check the configuration file

如果我手动将 Package/ExternalModules/ 文件夹添加到 PATH,就可以了。

有好的解决办法吗?

自己回答:

当我附加到 sys.path 时,我是将目录添加到 PYTHONPATH 环境变量,而不是系统 PATH 变量。

做 de former 所需的命令是这样的:

os.environ["PATH"] += os.pathsep + path

这与系统无关。