我正在构建一个包裹以将其作为AWS lambda函数上传。试图包括对Markdown 2.6.8(Markdown的Python实现(的依赖。尝试测试功能时,我会得到错误Unable to import module 'markdown-convert': No module named markdown
。我从其他类似的问题中可以看到,我可能需要编译Amazon Linux中的依赖项文件,以使其可与Lambda一起使用。我不熟悉Python,想知道我是否还应该探索该代码在鸡蛋中打包的方式,以及这是否影响依赖性的导入方式。您建议我追求解决错误?
这是我的软件包的文件结构:
.
├── markdown
│ ├── blockparser.py
│ ├── blockprocessors.py
│ ├── extensions
│ │ ├── abbr.py
│ │ ├── admonition.py
│ │ ├── attr_list.py
│ │ ├── codehilite.py
│ │ ├── def_list.py
│ │ ├── extra.py
│ │ ├── fenced_code.py
│ │ ├── footnotes.py
│ │ ├── headerid.py
│ │ ├── __init__.py
│ │ ├── meta.py
│ │ ├── nl2br.py
│ │ ├── __pycache__
│ │ │ ├── abbr.cpython-34.pyc
│ │ │ ├── admonition.cpython-34.pyc
│ │ │ ├── attr_list.cpython-34.pyc
│ │ │ ├── codehilite.cpython-34.pyc
│ │ │ ├── def_list.cpython-34.pyc
│ │ │ ├── extra.cpython-34.pyc
│ │ │ ├── fenced_code.cpython-34.pyc
│ │ │ ├── footnotes.cpython-34.pyc
│ │ │ ├── headerid.cpython-34.pyc
│ │ │ ├── __init__.cpython-34.pyc
│ │ │ ├── meta.cpython-34.pyc
│ │ │ ├── nl2br.cpython-34.pyc
│ │ │ ├── sane_lists.cpython-34.pyc
│ │ │ ├── smart_strong.cpython-34.pyc
│ │ │ ├── smarty.cpython-34.pyc
│ │ │ ├── tables.cpython-34.pyc
│ │ │ ├── toc.cpython-34.pyc
│ │ │ └── wikilinks.cpython-34.pyc
│ │ ├── sane_lists.py
│ │ ├── smart_strong.py
│ │ ├── smarty.py
│ │ ├── tables.py
│ │ ├── toc.py
│ │ └── wikilinks.py
│ ├── __init__.py
│ ├── inlinepatterns.py
│ ├── __main__.py
│ ├── odict.py
│ ├── postprocessors.py
│ ├── preprocessors.py
│ ├── __pycache__
│ │ ├── blockparser.cpython-34.pyc
│ │ ├── blockprocessors.cpython-34.pyc
│ │ ├── __init__.cpython-34.pyc
│ │ ├── inlinepatterns.cpython-34.pyc
│ │ ├── __main__.cpython-34.pyc
│ │ ├── odict.cpython-34.pyc
│ │ ├── postprocessors.cpython-34.pyc
│ │ ├── preprocessors.cpython-34.pyc
│ │ ├── serializers.cpython-34.pyc
│ │ ├── treeprocessors.cpython-34.pyc
│ │ ├── util.cpython-34.pyc
│ │ └── __version__.cpython-34.pyc
│ ├── serializers.py
│ ├── treeprocessors.py
│ ├── util.py
│ └── __version__.py
├── Markdown-2.6.8.egg-info
│ ├── dependency_links.txt
│ ├── installed-files.txt
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ └── top_level.txt
└── markdown-convert.py
markdown-convert.py的内容:
import markdown
def lambda_handler(event, context):
parsedHTML = {}
parsedHTML[u'text'] = markdown.markdown(event[u'text'])
return parsedHTML
最佳建议是在本地开发机上使用virtualenv
,并使用pip
安装软件包。
然后,当您准备就绪时,通过递归复制<your-virtual-env>/lib/python2.7/site-packages/*
的全部内容来制作Lambda包。确保内容放在zip包的根部。这非常重要!
请在此处找到更多详细信息:
http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-to-create-deployment-package.html