如何将docs目录包含在Python发行版中

33 投票
1 回答
17700 浏览
提问于 2025-04-17 05:09

我有一个Python项目,结构如下:

Clustering  (project name)
  clustering  (package)
    clustering.py and other modules
    tests  (sub-package)
      test_clustering.py and other such files
  docs/
  bin/

我想把docs文件夹包含在我的发布包里,但我似乎做不到。有没有什么建议可以帮我实现这个?

我现在的setup.py文件是这样的:

from distutils.core import setup
setup(name='Clustering',
      version='1.0',
      description='desc',
      author='A',
      author_email='me@somemail.com',
      packages=['clustering', 'clustering.tests'],
      requires=['numpy', 'scipy'],
      scripts=['bin/predict', 'bin/verify']
     )

我尝试使用package_data选项,但没有成功把docs文件夹包含在发布包里。有没有其他常用的方法可以把文档包含在发布包里?

1 个回答

51

你需要创建一个叫做 MANIFEST.in 的文件,并在里面写一些简单的指令,告诉系统你想要包含哪些额外的文件(可以参考 MANIFEST.in 模板)。

举个例子(如果你想包含 docs 文件夹及其下面的所有文件):

include docs/*

或者,如果你想包含 docs 文件夹里的所有文件(包括子文件夹里的文件):

recursive-include docs *

撰写回答