Python setup.py包含了egg中的.json文件

时间:2015-05-11 09:31:00

标签: python python-2.7 setuptools egg

我想在python egg文件中打包.json文件。

例如:boto包有endpoints.json文件。但是当我运行python setup.py bdist_egg时,它不包含egg中的json文件。如何在蛋中包含Json文件?

如何在鸡蛋中加入* .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,
)

2 个答案:

答案 0 :(得分:9)

您只需要在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

答案 1 :(得分:1)

这对我有用。

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文件。

希望这会有所帮助。