在Docker内部,激活主机上的Python虚拟环境

时间:2020-04-17 08:52:40

标签: python docker virtualenv

我设置了一个容器化的JupyterHub服务器,该服务器生成了容器化的JupyterLab笔记本服务器,每个用户一个。后者的容器会挂载用户的主机主目录,以便用户可以从JupterLab容器访问其脚本和笔记本。

但是,用户可能对JupyterLab泊坞窗附带的Python环境不满意,并且可能想从自定义虚拟环境中添加Jupyter内核。而且,与其在容器内重新创建虚拟环境,用户可能更喜欢在自己的主文件夹中重用已经在主机上创建的某些虚拟环境。

因此,我尝试使用以下方法激活从Jupyterlab容器在主机上创建的虚拟环境:

source /path/to/env/bin/activate

which python然后指向正确的Python解释器,即/path/to/env/bin/python

不幸的是,当我然后尝试从Jupyerlab docker执行Python时,它引发以下错误:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x00007f48a97de080 (most recent call first):
Aborted

那么,是否有可能做到这一点,即从容器激活在主机上创建的虚拟环境?换句话说,要在主机和容器之间共享虚拟环境?

0 个答案:

没有答案