如何运行包含模块的代码,每个模块都位于不同的virtualenv中?

时间:2019-05-19 14:20:27

标签: python python-2.7 module virtualenv modularity

短篇小说:

我有一个很大的python项目


组成 ServiceAServiceBServiceC等。

对于模块化,每个服务都有其自己的虚拟环境。
每个服务都需要彼此提供一些foo()

ServiceAimport package_a
ServiceBimport package_b
ServiceCimport package_c
等等。

我不想为所有服务创建一个单一的环境,因为这会使维护变得非常麻烦。

在保持模块化的同时,将这样的项目集成在一起工作的一种好方法是什么?


长篇故事:

我有一个非常大的项目,包含25个以上的大模块,彼此通信。
它们都为所有依赖项使用一个非常大的环境。

到一个点,升级一个模块中的软件包可能(而且经常)破坏其他模块。
Pycharm的索引也要花更长的时间。
在新计算机上安装软件包所花的时间比原本要长得多
最坏的情况当然是担心升级,因为破坏一切的可能性增加。

大多数模块只需要安装的所有软件包的一部分。

所有这些都在python 2.7中,我们想升级到python 3,由于项目规模大,无法一次完成所有操作。
为了业务目的和测试能力,我们必须一次迁移一个模块,同时要一直保持系统功能。

我相信这将需要某些模块具有自己的解释器,同时仍然需要与其他模块一起工作。


怎么办?

1 个答案:

答案 0 :(得分:0)

我认为Pycharm中没有术语“模块”,如以下屏幕截图所示。 我们可以做的是在项目下添加多个文件夹。 但是,除了每个文件夹之外,python解释器都只能捆绑到项目中。

Pycharm ScreenShot