No module named 'email.FeedParser'

5 浏览
0 Comments

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

0
0 Comments

问题的出现原因是在安装依赖包时,使用的是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服务器时,依赖包也会被包含进去。

感谢分享这个解决方法!我会尝试一下!

0
0 Comments

问题:No module named 'email.FeedParser'的出现原因是安装的包被错误地安装到了Python 2而不是Python 3。

解决方法:使用以下命令确保pip3安装到的是Python 3而不是Python 2:

python3.8 -m pip install <package>

参考链接:https://stackoverflow.com/questions/51055429

0