假设我有两个独立的docker(或其他一些)容器,它们只能相互共享文件夹。在这两个容器中都安装了相同版本的Python解释器。有没有办法让这些解释器分享几乎相同的PYTHONPATH,例如他们俩都看到安装在这些容器中的所有包?
我知道我可以从文件夹导入包,但我想知道是否可以执行这些步骤:
问题是,我正在尝试使用stevedore按入口点查找软件包,但它们应该安装,并且可能独立于第二个容器中安装的软件进行升级。
答案 0 :(得分:0)
我不知道我是否明白这个问题。如果这不能回答你的问题,你能评论一下吗?对我来说,你问了三个问题:
导入行为
有一个名为sys.path
的列表。它是python查找包的文件夹列表。
假设您在此列表中有folder1
和folder2
。
folder1
+----- module_a
+----- module_b
folder2
+----- module_a
+----- module_c
使用['folder1', 'folder2', ...]
作为sys.path
的Python流程会这样做:
import module_a # from folder1
import module_b # from folder1
import module_c # from folder2
使用['folder2', 'folder1', ...]
作为sys.path
的Python流程会这样做:
import module_a # from folder2 # difference
import module_b # from folder1
import module_c # from folder2
这就是我理解Python导入行为的方式。我不使用docker或PYTHONPATH,所以我不能参考它。
答案 1 :(得分:0)
您可以拥有一个容器,其入口点在卷中创建virtualenv并安装需求文件中定义的所有依赖项。然后你可以使用--volumes-from标志在其他容器中挂载虚拟环境并执行activate脚本来导入环境..