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

问题描述 投票:6回答:2

我想在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,
)
python python-2.7 setuptools egg
2个回答
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
)

你可以在这里看到详细信息。 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


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

希望这可以帮助。

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