【问题标题】:Python setup.py include .json files in the eggPython setup.py 在 egg 中包含 .json 文件
【发布时间】: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,
)

【问题讨论】:

    标签: python python-2.7 setuptools egg


    【解决方案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_filesglob 等正确包含的所有内容,但*.json 文件没有。在我看到你用include_package_data kwarg 发布的帖子后,我使用了它(虽然我认为它只适用于package_data)和tada,没有MANIFEST.in,所有东西都正确打包!谢谢!
    • 我这样做了,但我必须包含 MANIFEST.in 文件,这与 @PeterBadida 不同。
    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2011-01-18
    相关资源
    最近更新 更多