Skip to content

Commit f16ba1a

Browse files
fix: Add code_dir to sys.path in HandlerService for MME (#73)
This addresses an issue with environment variables not being inherited from the shell environment when using miniconda.
1 parent 0d7b2e1 commit f16ba1a

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/sagemaker_pytorch_serving_container/handler_service.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,14 @@
1717
from sagemaker_pytorch_serving_container.default_inference_handler import \
1818
DefaultPytorchInferenceHandler
1919

20+
import os
21+
import sys
22+
23+
ENABLE_MULTI_MODEL = os.getenv("SAGEMAKER_MULTI_MODEL", "false") == "true"
24+
2025

2126
class HandlerService(DefaultHandlerService):
27+
2228
"""Handler service that is executed by the model server.
2329
2430
Determines specific default inference handlers to use based on the type MXNet model being used.
@@ -31,5 +37,16 @@ class HandlerService(DefaultHandlerService):
3137
3238
"""
3339
def __init__(self):
40+
self._initialized = False
41+
3442
transformer = Transformer(default_inference_handler=DefaultPytorchInferenceHandler())
3543
super(HandlerService, self).__init__(transformer=transformer)
44+
45+
def initialize(self, context):
46+
# Adding the 'code' directory path to sys.path to allow importing user modules when multi-model mode is enabled.
47+
if (not self._initialized) and ENABLE_MULTI_MODEL:
48+
code_dir = os.path.join(context.system_properties.get("model_dir"), 'code')
49+
sys.path.append(code_dir)
50+
self._initialized = True
51+
52+
super().initialize(context)

0 commit comments

Comments
 (0)