包括外部文件时,设置工具在MANIFEST.in之外是否可以查找?

时间:2019-01-15 15:22:13

标签: python setuptools

当我使用Python包从中生成源分发时

python setup.py sdist --formats=zip

我正在使用MANIFEST.in文件来指定要包含的其他文件。

到目前为止,我将Sphinx文档的输出作为软件包的一部分包含在内。这可能不是标准做法,但是这些是我团队内部分发的软件包。该文档尚未托管,因此将其与软件包捆绑在一起似乎很容易。

无论如何,我将构建Sphinx文档,然后添加

recursive-include docs/_build/html *

MANIFEST.in文件。我在include_package_data=True文件中也有setup.py。这给了我一个适合我要求的初始解决方案。

我现在有一台托管文档的服务器。因此,我不再需要将其捆绑在包装中。我从MANIFEST.in-删除了上面的行,但是文件仍被包含,我不知道为什么...

还有其他一些地方可能会覆盖我不知道的MANIFEST.in吗?我什至尝试删除并重新添加清单文件而没有任何效果...

setup.py (我已将名称,电子邮件和URL更改为“虚拟”值以在此处发布)

from setuptools import setup
import json
import os

REQUIRED = ["lxml", "jinja2"]


def ver():
    with open("meta.json") as meta:
        return json.load(meta)["version"]


def readme():
    with open("README.txt") as rm:
        return rm.read()


setup(name="zfim",
      version=ver(),
      description="Python API for PTC Integrity IM server",
      long_description=readme(),
      url="//path/to/repo",
      author="...",
      author_email="...",
      license="MIT",
      packages=["zfim"],
      install_requires=REQUIRED,
      entry_points={
          "console_scripts": []
      },
      dependency_links=["//path/to/local/package_repo"],
      zip_safe=True,
      include_package_data=True,
      classifiers=[
          "Programming Language :: Python :: 3",
          "Operation System :: Windows"])

MANIFEST.in

include README.txt
include LICENSE.txt
include requirements.txt
include meta.json

1 个答案:

答案 0 :(得分:0)

如果我删除了package-name.egg-info目录,则在重新运行python setup.py sdist之前,将遵守我对MANIFEST.in文件所做的任何更改。

这似乎有点hack,但它似乎对我有用。