【问题标题】:What if setup.py is not at the root of a dependency link?如果 setup.py 不在依赖链接的根目录下怎么办?
【发布时间】:2021-08-26 02:28:47
【问题描述】:

我最近遇到了一个 Python 包,它的 setup.py 不在包根目录内。

package
|
|--cpp
|  |
|  |--<cpp stuff>
|
|--python
|  |
|  |--setup.py
|  |--<python stuff>

我不能简单地将setup.py 中的dependency_links 指向python 文件夹,因为repo 只能作为一个整体下载(它包含在一个tarball 中)。

如何处理这样的依赖关系?可能是下载,然后是 setup 中的本地参考

install_requires=['package @ file://localhost/{}'.format(
    os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'package', 'python'))]

【问题讨论】:

  • 从包中构建一个(可能是二进制,如果涉及 C++)轮子并需要它不是更容易吗?
  • 正如 AKX 所说:我建议您避免直接引用这个 tarball,而是从这个库中构建一个轮子,并将轮子作为项目的依赖项引用。 -- 否则,也许看看这个,以防它有帮助(我怀疑):stackoverflow.com/a/65858081
  • @AKX 有趣的是 Python 代码不包含 C++ 绑定。他们都只是客户。否则我就照你说的做。
  • @studentbrad 所以更好的是,您可以使用python setup.py bdist_wheel 用python 位构建一个非二进制轮子!
  • @AKX 如果您希望它被接受,请考虑将其作为答案。为我工作。

标签: python python-3.x pip setup.py


【解决方案1】:

回答我的评论:

你可以用 Python 构建一个轮子 (.whl)

python setup.py bdist_wheel

并使用生成的轮子作为您的依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2014-02-16
    • 2017-04-26
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    相关资源
    最近更新 更多