【问题标题】:Restricting packages when trying to create an egg file doesnt work尝试创建 egg 文件时限制包不起作用
【发布时间】:2019-04-23 02:22:40
【问题描述】:

我有一个 python 项目,我想将位于项目根目录下的两个包打包到一个 egg 中。

我在根目录下有一个 setup.py ,看起来像这样:

from setuptools import setup, find_packages

packages = find_packages(include=("datainfra.*", "serverinfra.*"))

setup(
    name="infra",
    version="0.1",
    packages=packages,
)

问题:我运行 python setup.py bdist_egg,确实创建了一个 egg 文件,但它需要 all 根目录下的包,而不仅仅是我指定的包。

当然,我确保 find_packages 的返回值仅包含所需的子集。

我正在运行 python 2.7

【问题讨论】:

  • 我创建了一个带有子包的小测试包,并发现它对我很有效——鸡蛋只包含指定的子包。你能提供一个minimal reproducible example吗?
  • 删除 build 和 egg-info 目录并重建可能会有所帮助。
  • @hoefling,天哪,这成功了!如果您将其发布为答案,我会接受。

标签: python python-2.7 setuptools egg


【解决方案1】:

您的设置脚本是正确的 - 如果您得到意外的构建结果,通常是由于仍位于项目目录中的先前构建的剩余部分造成的。删除<pkgname>.egg-info 目录(如果生成的包有错误的元数据)、build 目录(如果生成的包有错误的模块集)或.eggs 目录(如果在构建中继续使用错误的安装程序)并重建是一种快速而廉价的修复尝试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    相关资源
    最近更新 更多