gpt4 book ai didi

Python - setuptools - 处理两个依赖包(在一个 repo 中?)

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:02 25 4
gpt4 key购买 nike

我正在开发一个包含两个模块的 python 项目。这些模块密切相关,因此我希望它们位于同一个 git 存储库中,并能够在我的 IDE 中一起开发它们:

  • module1取决于 module2
  • module1有很多其他重依赖性,module2 没有
  • module1module2将在不同的运行环境中使用
  • module2应该可以单独安装,这样它就可以运行在例如一个 AWS Lambda

因此,我尝试建立一个项目结构,其中包含一个存储库中两个文件夹中的两个模块,每个文件夹都有一个 setup.py所以它可以打包。这是一种合理的方法吗?

\module1
setup.py
\module1
__init__.py
[scripts].py
\module2
setup.py
\module2
__init__.py
[scripts].py

以上结构应该允许我在本地处理项目 module2作为常规模块,但是 setup.py文件意味着它可以作为自己的包分发,对吧?

问题是我不能包含 module2依赖于 module1setup.py :

from setuptools import setup

setup(
name="module1",
version="0.1",
packages=['module1'], # I really need to include module2 scripts here, right?...
install_requires=['pandas', 'numpy', ...]
)

有没有人对如何解决这个问题有任何建议?我能猜到的两个解决方案是:

  • 包装与出版module2在依赖它之前它自己来自 module1 .这使得开发更加不灵活
  • 嵌套 module2module1 内所以我可以将它包含在 packagessetup(...) 的参数功能。这打破了 module1 的清晰度应该治疗module2就好像它本质上是一个外部依赖......

最佳答案

将它们保存在同一个存储库中的主要原因是为了在 IDE 中的两个模块上实现并行工作。我建议将模块保存在单独的存储库中并使用 editable pip 的模式或 develop setuptools 的模式实现“平行”发展。

本质上,您将安装 module2develop/editablemodule1 中使用它时的模式.此后,您将看到对 module2 所做的所有更改。在开发时立即 module1

做同样的事情也会确保像pip install git+<git_directory>这样的事情不要破坏,您可以直接从 git 安装

关于Python - setuptools - 处理两个依赖包(在一个 repo 中?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com