【问题标题】:Build dependencies automatically with setuptools使用 setuptools 自动构建依赖项
【发布时间】:2017-02-12 10:26:20
【问题描述】:

在我的包裹里setup.py我有

setup(
    ...
    requires=['enum', 'hashlib', ...]
)

如果我在包中添加依赖项,我必须手动编辑 requires 字段,问题是:我经常忘记这样做。

是否有一个选项可以自动查找不属于当前包的导入包?

【问题讨论】:

  • 为什么不加载并解析requirements.txt
  • 我刚刚发现requirements.txtsetuptool 会自动填充此文件吗?
  • 不是。 This question 有办法加载数据。

标签: python setuptools


【解决方案1】:

这个问题现在已经很老了,我相信你设法找到解决这个问题的方法,但无论如何。只是为了得到这个问题的答案:我通过解析requirements.txt来按照评论中建议的方式进行操作。这是我的一个包的代码:

from setuptools import setup

setup(
  name="my_package",
  version="1.0.0",
  description="Just a package",

  ...

  # this will return every module listed in requirements.txt
  install_requires=[line.strip() for line in open("requirements.txt", "r").readlines()],

)

我希望这能解决问题:)

【讨论】:

  • 在您的情况下,您将问题转移到其他地方。在那里我仍然需要手动维护 requirements.txt 列表是最新的......
  • 虽然有一些扫描器会解析你的项目目录以查找以import ...from ... 开头的行,但我并不真正信任它们,因为它们经常搞砸事情并自己执行 requirements.txt .如果您使用的是 PyCharm 或类似的 IDE,则不是 im requirements.txt 的模块会在您的代码中突出显示。 (如果你问我,这是一个非常方便的功能......)
猜你喜欢
  • 1970-01-01
  • 2017-09-29
  • 2012-01-15
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
相关资源
最近更新 更多