从鸡蛋中访问数据文件

问题描述 投票:0回答:1

我有一个包,里面有一个默认的json文件,以防用户没有提供。 data = pkgutil.get_data(__name__, "deprecated.json")

单机运行时可以正常工作

但如果我跑 python setup.py install 营造 my.egg运转 easy_install my.egg最后启动可执行文件,我得到了一个错误信息 [Errno 2 nosuch file or director: `d:\\work\\pythonvenv\\lib\\site-packages\\my.egg\\PackageName\\depercate.json

    return loader.get_data(resource_name)
  File "<frozen importlib._bootstrap_external>", line 972, in get_data

我以为使用 pkgutil.get_data 的目的是为了防止这种类型的问题?

python egg
1个回答
1
投票

修改您的 setup.py 的文件,以包括 package_data 如同 https:/docs.python.org3.8distutilssetupscript.html#installing-package-data。

setup(
    ...,
    package_data={'pkgName': ["path/to/deprecated.json"]},
)

另一种实现同样行为的方法是创建一个 MANIFEST.in 文件,内容为 include path/to/deprecated.json 然后在你 setup 函数包括参数 include_package_data=True. 详细情况见 https:/python-packaging.readthedocs.ioenlatestnon-code-files.html。.

© www.soinside.com 2019 - 2024. All rights reserved.