2017-02-10 113 views
2

我有一个使用库xgboost的pkl文件。 在我的代码我只是导入这个PKL并加载它:ELF头文件xgboost无效(在Docker容器中使用pkl)

def _init_model(self): 
    self.model = joblib.load(QueryClassifier.MODEL_FILE) 

而且我运行一个码头工人容器内我的代码。 我有一个需求文件像这样的:

scipy 
sklearn 
numpy 
xgboost 
pandas 
flask 

我有这样的错误,当我尝试运行多克尔容器:

Traceback (most recent call last): 
    File "server.py", line 12, in <module> 
    c = classifier.QueryClassifier() 
    File "/app/classifier_controller/classifier.py", line 43, in __init__ 
    self._init_model() 
    File "/app/classifier_controller/classifier.py", line 62, in _init_model 
    self.model = joblib.load(QueryClassifier.MODEL_FILE) 
    File "/usr/local/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 575, in load 
    obj = _unpickle(fobj, filename, mmap_mode) 
    File "/usr/local/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 507, in _unpickle 
    obj = unpickler.load() 
    File "/usr/local/lib/python3.5/pickle.py", line 1039, in load 
    dispatch[key[0]](self) 
    File "/usr/local/lib/python3.5/pickle.py", line 1334, in load_global 
    klass = self.find_class(module, name) 
    File "/usr/local/lib/python3.5/pickle.py", line 1384, in find_class 
    __import__(module, level=0) 
    File "/usr/local/lib/python3.5/site-packages/xgboost/__init__.py", line 11, in <module> 
    from .core import DMatrix, Booster 
    File "/usr/local/lib/python3.5/site-packages/xgboost/core.py", line 112, in <module> 
    _LIB = _load_lib() 
    File "/usr/local/lib/python3.5/site-packages/xgboost/core.py", line 106, in _load_lib 
    lib = ctypes.cdll.LoadLibrary(lib_path[0]) 
    File "/usr/local/lib/python3.5/ctypes/__init__.py", line 425, in LoadLibrary 
    return self._dlltype(name) 
    File "/usr/local/lib/python3.5/ctypes/__init__.py", line 347, in __init__ 
    self._handle = _dlopen(self._name, mode) 
OSError: /usr/local/lib/python3.5/site-packages/xgboost/./lib/libxgboost.so: invalid ELF header 

任何帮助吗?

回答