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

Bou*_*rne 8 python egg setuptools python-2.7

我想在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,
)
Run Code Online (Sandbox Code Playgroud)

Edw*_*ndo 10

您只需要在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
)
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到详细信息.https://docs.python.org/2/distutils/setupscript.html#installing-additional-files

另一种方法是使用MANIFEST.in文件.您需要MANIFEST.in在项目根目录中创建一个文件.这是一个例子.

include python/boto/endpoints.json
Run Code Online (Sandbox Code Playgroud)

请访问此处获取更多信息.https://docs.python.org/2/distutils/sourcedist.html#manifest-template


Mri*_*nal 5

嗯,这对我有用。

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
)
Run Code Online (Sandbox Code Playgroud)

MANIFEST.in

recursive-include config *
Run Code Online (Sandbox Code Playgroud)

项目根目录下有一个配置文件,里面有一大堆json文件。

希望这可以帮助。