添加 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
这与系统无关。
我有一个 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
这与系统无关。