как обратиться к среде conda на диске изнутри python и загрузить модуль, который является пакетом conda - PullRequest
0 голосов
/ 30 апреля 2020

Я специально пытаюсь заставить aws лямбду загружать модули из большой среды conda путем копирования env из S3 в директорию lambda / tmp во время выполнения, но это также более общий вопрос о том, как conda перехватывает py-приложения до разрешения модулей

Локальное тестирование: я в своей базовой среде env, и у меня уже есть другая созданная мной среда env2, и она находится на моем диске здесь: /usr/local/Caskroom/miniconda/base/envs/env2. В нем установлены некоторые пакеты conda, и мое приложение пытается импортировать их

Без переключения или активации env2 из моего кода python, как я могу загрузить эти модули?

Я попробовал это, но он не может найти модуль (ModuleNotFoundError):

import sys
sys.path.insert(0, "/usr/local/Caskroom/miniconda/base/envs/env2")
from mymodule.blah import something

Редактировать: если я пытаюсь добавить папку lib и site-packages, я получаю эту ошибку при попытке использовать модуль:

import sys
sys.path.insert(0, "/usr/local/Caskroom/miniconda/base/envs/env2/lib/python3.6")
sys.path.insert(0, "/usr/local/Caskroom/miniconda/base/envs/env2/lib/python3.6/site-packages")
from mymodule.blah import something
sdsdfdsf = something_from_mymodule("ddsdsdfsf")

Traceback (последний вызов был последним): файл "lambda_function.py", строка 17, в файле sdsdfdsf = something_from_mymodule ("test") "/ usr / local / Caskroom /miniconda/base/envs/env2/lib/python3.6/site-packages/mymodule/blah.py ", строка 424, в файле some_from_mymodule arg = balhalbha" / usr / local / Caskroom / miniconda / base / envs /env2/lib/python3.6/site-packages/boto3/session.py ", строка 263, в клиентском файле aws_session_token = aws_session_token, config = config) Файл" / usr / local / Caskroom / miniconda / base / envs / env2 / lib / python3 .6 / site-packages / botocore / session.py ", строка 827, в файле create_client credentials = self.get_credentials ()" / usr / local / Caskroom / miniconda / base / envs / env2 / lib / python3 .6 / site-packages / botocore / session.py ", строка 426, в файле get_credentials 'credential_provider'). load_credentials () "/usr/local/Caskroom/miniconda/base/envs/env2/lib/python3.6/site-packages/botocore/session.py", строка 903, в get_component self._components [name] = factory () Файл "/usr/local/Caskroom/miniconda/base/envs/env2/lib/python3.6/site-packages/botocore/session.py", строка 145, в лямбде: botocore.credentials.create_credential_resolver (self) ) Файл "/usr/local/Caskroom/miniconda/base/envs/env2/lib/python3.6/site-packages/botocore/credentials.py", строка 75, в create_credential_resolver user_agent = session.user_agent ()) Файл "/usr/local/Caskroom/miniconda/base/envs/env2/lib/python3.6/site-packages/botocore/session.py", строка 454, в user_agent platform.python_version (), файл "/ usr / local / Caskroom / miniconda / base / envs / env2 / lib / python3 .6 / platform.py ", строка 1244, в python_version return _sys_version () [1] Файл" / usr / local / Caskroom / miniconda / base / envs / env2 / lib / python3 .6 / platform.py ", строка 1192, в _sys_version repr (sys_version)) ValueError: не удалось проанализировать CPython sys.version: '3.6.5 | Anaconda , В c. | (по умолчанию, 26 апреля 2018 г., 08:42:37) \ n [G CC 4.2.1 Совместимый Clang 4.0.1 (теги / RELEASE_401 / final)] '

...