如何使用基于Python和JVM的堆栈构建多模块项目

时间:2018-04-27 08:11:49

标签: python git intellij-idea virtualenv pipenv

我们正在为具有多个模块的新项目定义结构,这些模块可能包括基于Python和JVM的子项目。在将Python放入堆栈之前,我们使用Gradle来处理几乎所有的配置。现在我们希望在多个不同模块中将Python放在堆栈中。

管理/构建此类项目的建议是什么?知道所有开发人员都在使用IntelliJ IDEA

,这些建议怎么会改变

我们目前有什么:

  • 对于每个Java / scala模块:基于Gradle的模块,在导入项目和/或刷新Gradle项目时,我们会自动处理所有依赖项。
  • 对于每个Python模块:requirements.txt文件,包含此模块的所有必需包。要求开发人员手动创建Python虚拟环境,并将其设置为IntelliJ IDEA中的Module SDK(这是我们的主要难点,我们希望以某种方式自动化)。

我们需要确切知道什么:

  • 什么推送到我们的git存储库,以便我们尽可能接近从存储库克隆/拉出的零配置结构?
  • 每个Python模块使用Python虚拟环境,如何管理包和环境本身?
  • 直接从Pipenv开始是一个好主意,尽管IntelliJ IDEA仍然不支持它,虽然this issue看起来很有希望吗?
  • 如何管理模块间的Python依赖关系?我们应该使用任何Python发行版工具吗?

1 个答案:

答案 0 :(得分:0)

第一个问题(要解决的问题)的答案可能是使用here中所述的Git X-Modules建立环境。然后,对于每个新用户,只有一个常规的存储库可以克隆,其中已经包含了所有内容。

关键是要使用'pip install'的'-e'标志。然后,虚拟环境中的库将替换为具有指定源的路径的逻辑链接,以便您可以编辑源,并且所做的更改将立即生效,而无需实际安装库。