Я специально пытаюсь заставить 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)] '