【发布时间】:2025-11-30 17:10:02
【问题描述】:
我制作了一个基于插件的程序,它从不同的目录加载插件,其中一个是模块所在的目录(为了方便在源存储库中运行以进行测试)。
我希望源存储库中当前的插件与模块一起安装,以便在任何安装时默认加载它们。这最好存储在 setup() 创建的鸡蛋中。
目前源码仓库的重要部分如下:
/path/to/repo/
plugins/
example.py
myprog.py # the module
myprog # the script
setup.py
setup.py 看起来像这样:
from setuptools import setup
setup(
name = 'myprog',
version = '1.0',
scripts = ['myprog'],
py_modules = ['myprog'],
package_data = {
'': ['plugins/']
}
)
但是,plugins 目录不以任何方式包含在安装中。
我怎样才能包含它,以便该行
os.path.join(os.path.dirname(os.path.realpath(__file__)), 'plugins')
运行python3 setup.py install后会正确找到该目录吗?
【问题讨论】:
-
将此路径
sys.path.append(os.getcwd()+'/plugins')添加到myprog.py 或者在哪里可以调用? -
不要定义静态路径!
-
添加静态路径无法解决问题。我希望在安装中包含一个文件。更改程序以查看其原始位置不是有效的解决方案。
标签: python python-3.x packaging setuptools setup.py