在python中访问包数据

问题描述

我想制作一个使用我的一些 sql 脚本的方便的 python 工具。我创建了一个包含脚本的包,但安装包后我无法访问它们。这是一个最小的示例,包具有以下结构:

.
├── me
│   └── me.py
├── setup.py
└── sql_scripts
    ├── __init__.py
    └── init.sql

me.py内容

import click
import importlib.resources as pkg_resources


@click.group()
def me():
    pass


@me.command()
def init():
    sql_script = (pkg_resources.files('me.sql_scripts').joinpath('init.sql').read_text())

我还制作了一个简单的 setup.py 文件

from setuptools import setup

setup(
    name="me",version='0.0.1',py_modules=['me'],python_requires='>=3.9',# use importlib.resources
    install_requires=[
      'click',],package_data={'me': ['sql_scripts/*.sql']},packages=['me'],entry_points={
        'console_scripts':
        [
          'me=me.me:me'
        ]
    },)

我正在使用 pip install . 安装软件包,但启动 me init 时出现“ModuleNotFoundError”错误

在我看来,我要么在安装脚本中犯了一个错误而安装不成功,要么我没有正确使用 importlib.resources。完整代码在这里https://github.com/sellisd/minimal_example_code

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)