'use strict';const jieba = require('nodejieba');exports.main_handler = async (event, context, callback) => {return jieba.cut('hello world');};
{"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"/var/user/node_modules/nodejieba/build/Release/nodejieba.node: invalid ELF header"}
$ docker run -it --network=host -v /path/to/your-project:/tmp/your-project node:8.9 /bin/bash -c 'cd /tmp/your-project && npm install nodejieba --save'
/path/to/your-project is the project path, which corresponds to the /tmp/your-project directory in the Docker container; therefore, you need to install nodejieba in the /tmp/your-project directory of the container (i.e., the project path).After installing the dependency, deploy the code into SCF again and the function will run normally.import pandas as pddef main_handler(event, context):s = pd.Series([1, 3, 5, 6, 8])print(s)return len(s)
$ docker run -it --network=host -v /path/to/your-project:/tmp/your-project python:3.6.1 /bin/bash -c 'cd /tmp/your-project && pip install pandas -t .'
/var/user/pandas/compat/__init__.py:84: UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.warnings.warn(msg)0 11 32 53 64 8dtype: int64
$ docker run -it --network=host -v /tmp/foo:/tmp/bar python:3.6.1 /bin/bash
$ cd /tmp/bar$ pip install pandas -t .echo <<EOF >> index.py> import pandas as pd>> def main_handler(event, context):> s = pd.Series([1, 3, 5, 6, 8])> print(s)> return len(s)>> main_handler({}, {})> EOF$ python -v index.py > run.log 2>&1
$ grep lzma run.log# /usr/local/lib/python3.6/__pycache__/lzma.cpython-36.pyc matches /usr/local/lib/python3.6/lzma.py# code object from '/usr/local/lib/python3.6/__pycache__/lzma.cpython-36.pyc'# extension module '_lzma' loaded from '/usr/local/lib/python3.6/lib-dynload/_lzma.cpython-36m-x86_64-linux-gnu.so'# extension module '_lzma' executed from '/usr/local/lib/python3.6/lib-dynload/_lzma.cpython-36m-x86_64-linux-gnu.so'import '_lzma' # <_frozen_importlib_external.ExtensionFileLoader object at 0x7f446c40db70>import 'lzma' # <_frozen_importlib_external.SourceFileLoader object at 0x7f446c40d160># cleanup[2] removing lzma# cleanup[2] removing _lzma# cleanup[3] wiping lzma# cleanup[3] wiping _lzma# destroy _lzma# destroy lzma
/usr/local/lib/python3.6/lzma.py/usr/local/lib/python3.6/lib-dynload/_lzma.cpython-36m-x86_64-linux-gnu.so$ ldd /usr/local/lib/python3.6/lib-dynload/_lzma.cpython-36m-x86_64-linux-gnu.solinux-vdso.so.1 (0x00007fff75bb1000)liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fc743370000)libpython3.6m.so.1.0 => /usr/local/lib/libpython3.6m.so.1.0 (0x00007fc742e36000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc742c19000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc74286e000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc74266a000)libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fc742467000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc742166000)/lib64/ld-linux-x86-64.so.2 (0x00007fc74379c000)
/lib/x86_64-linux-gnu/liblzma.so.5/usr/local/lib/libpython3.6m.so.1.0import osos.environ['LD_LIBRARY_PATH'] = os.path.dirname(os.path.realpath(__file__)) + ':' + os.environ['LD_LIBRARY_PATH']import pandas as pddef main_handler(event, context):s = pd.Series([1, 3, 5, 6, 8])print(s)return len(s)
Feedback