Python setup.py 在 egg 中包含 .json 文件
Posted
技术标签:
【中文标题】Python setup.py 在 egg 中包含 .json 文件【英文标题】:Python setup.py include .json files in the egg 【发布时间】:2015-07-21 17:53:00 【问题描述】:我也想将 .json 文件打包到 python egg 文件中。
例如:boto 包有endpoints.json 文件。但是当我运行 python setup.py bdist_egg 它不包含鸡蛋中的 json 文件。如何在 egg 中包含 Json 文件?
如何在 egg 中包含 *.json 文件?
下面是 setup.py 代码
from setuptools import setup, find_packages, Extension
setup(
name='X-py-backend',
version='tip',
description='X Python backend tools',
author='meme',
packages=find_packages('python'),
package_dir='': 'python',
data_files=[('boto', ['python/boto/endpoints.json'])],
namespace_packages = ['br'],
zip_safe=True,
)
setup(
name='X-py-backend',
version='tip',
packages=find_packages('protobuf/target/python'),
package_dir='': 'protobuf/target/python',
namespace_packages = ['br'],
zip_safe=True,
)
【问题讨论】:
【参考方案1】:您只需要在data_files
参数上列出文件。这是一个例子。
setup(
name='X-py-backend',
version='tip',
description='XXX Python backend tools',
author='meme',
packages=find_packages('python'),
package_dir='': 'python',
data_files=[('boto', ['boto/*.json'])]
namespace_packages = ['br'],
zip_safe=True
)
您可以在此处查看详细信息。 https://docs.python.org/2/distutils/setupscript.html#installing-additional-files
另一种方法是使用MANIFEST.in
文件。您需要在项目根目录中创建一个MANIFEST.in
文件。这是一个例子。
include python/boto/endpoints.json
请访问此处了解更多信息。https://docs.python.org/2/distutils/sourcedist.html#manifest-template
【讨论】:
这不起作用。进行此更改后,我运行了“python setup.py bdist_egg”。当我解压缩 .egg 文件时,我在 boto 包中找不到“endpoints.json”文件。我在这里错过了什么吗? 请分享您编辑的 setup.py。我会调查的。【参考方案2】:这对我有用。
setup.py
:
from setuptools import setup, find_packages
setup(
name="clean",
version="0.1",
description="Clean package",
packages=find_packages() + ['config'],
include_package_data=True
)
MANIFEST.in
:
recursive-include config *
项目根目录下有一个配置文件,其中包含一大堆json
文件。
希望这会有所帮助。
【讨论】:
我有data_files
和glob
等正确包含的所有内容,但*.json
文件没有。在我看到你用include_package_data
kwarg 发布的帖子后,我使用了它(虽然我认为它只适用于package_data
)和tada,没有MANIFEST.in
,所有东西都正确打包!谢谢!
我这样做了,但我必须包含 MANIFEST.in 文件,这与 @PeterBadida 不同。以上是关于Python setup.py 在 egg 中包含 .json 文件的主要内容,如果未能解决你的问题,请参考以下文章
python setup.py egg_info mysqlclient
出现 Command “python setup.py egg_info” failed解决b...
安装 Django-toolbelt 时出现 python_setup.py 和 egg.info 错误
命令“python setup.py egg info”失败,错误代码为 1 ~~