No module named 'email.FeedParser'
No module named 'email.FeedParser'
我正在尝试在AWS Lambda上运行一段代码,但是它返回了一个错误:\"无法导入模块\'main\':没有名为\'email.FeedParser\'的模块\"。\n我的代码不使用email feedparser模块或函数,它只是连接到Google API并下载一个CSV报告。\n我已经检查了我的代码范围,并且对于这个模块的引用是通过httplib2库和Python标准库中的email/parser.py完成的。\n所有必需的库在requirements.txt文件中都已经完全更新。代码还通过samTemplate.yaml文件进行配置,以在AWS的Python 3.7环境中执行。\n你们之前遇到过这个问题吗?我该如何解决它?\n谢谢!\n
import httplib2 from googleapiclient import discovery from oauth2client.client import flow_from_clientsecrets from oauth2client.file import Storage from oauth2client.tools import run_flow from urllib.parse import urlencode import requests import json import time as t import pandas as pd from datetime import datetime, timedelta from calendar import monthrange from dateutil.relativedelta import relativedelta
问题的出现原因是在安装依赖包时,使用的是pip命令安装到Python2环境中,而Python2环境中没有名为'email.FeedParser'的模块。解决方法是使用pip3命令将依赖包安装到Python3环境中。
解决方法如下:
1. 打开终端,执行以下命令:
vim ~/.pydistutils.cfg
2. 在打开的配置文件中添加以下内容:
[install] prefix=
3. 删除依赖包目录:
rm -rf [dependencies_dir]
4. 使用pip3命令安装依赖包到指定目录:
pip3 install -r requirements.txt --target [dependencies_dir]
通过这种方式,使用pip3命令安装的依赖包会被安装到Python3环境中,而不是Python2环境中。这样,在部署到Lambda服务器时,依赖包也会被包含进去。
感谢分享这个解决方法!我会尝试一下!