包括 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
目录。
我正在编写一个包含“本地数据库”的包,该数据库由一个文件夹和包含 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
目录。