包括 JSON 个文件作为 Python 包的一部分

Including JSON files as part of Python package

我正在编写一个包含“本地数据库”的包,该数据库由一个文件夹和包含 json 个文件的子文件夹组成。我的 database.py 模块使用相对路径导入这些文件 (DB_PATH)。安装包时,加载失败,因为找不到文件。有没有一种方法可以将这些文件作为包的一部分导入,或者有一种标准方法来处理这种情况?

我的 python 密码 database.py:

DB_PATH = "./db"


def getIndex():
    filename = f"{DB_PATH}/index.json"

    with open(filename) as f:
        data = json.load(f)

    return data

文件系统:

package
 ┣folder
 ┃ ┗project
 ┃   ┣db
 ┃   ┃ ┣ index.json
 ┃   ┃ ┗config
 ┃   ┃   ┣ conf_1.json
 ┃   ┃   ┣ conf_2.json
 ┃   ┃   ┗ ...
 ┃   ┗ database.py
 ┗setup.py

如果您使用 setup.py,请添加此行:

import glob

setup(
    ...
    data_files=glob.glob('project/db/**')
)

在你的database.py

import os.path

DB_PATH = os.path.join(os.path.dirname(__file__), 'db')

变量__file__包含当前python脚本database.py的绝对路径。使用 dirname 获取父文件夹,使用 join 在路径中添加 database 目录。