Внутри docker активируйте Python виртуальную среду, находящуюся на хосте. - PullRequest
0 голосов
/ 17 апреля 2020

Я настроил контейнерный сервер JupyterHub, который порождает контейнеры JupyterLab для ноутбуков в контейнерах, по одному на пользователя. Последний контейнер монтирует домашнюю директорию хоста пользователя, так что пользователь может получить доступ к своим сценариям и записным книжкам из контейнера JupterLab.

Однако пользователь может быть не удовлетворен средой Python, связанной с JupyterLab docker и может захотеть добавить ядро ​​Jupyter из пользовательского виртуального окружения. И вместо того, чтобы воссоздавать виртуальную среду в контейнере, пользователь, скорее всего, предпочтет повторно использовать виртуальную среду, которую он уже создал на хост-машине, в своей домашней папке.

Итак, я попытался активировать виртуальную среду созданный на хост-машине из контейнера Jupyterlab с чем-то вроде:

source /path/to/env/bin/activate

which python, затем указывает на правильный интерпретатор Python, то есть /path/to/env/bin/python

К сожалению, когда я тогда пытаюсь выполнить Python (из Jupyerlab docker), он выдает следующую ошибку:

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

Итак, возможно ли это сделать, то есть активировать виртуальная среда, созданная на хосте, из контейнера? Другими словами, чтобы разделить виртуальную среду между хостом и контейнером?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...