运行 python Amazon Linux 实例上的脚本时出现库错误
Library errors when running python script on Amazon Linux instance
我正在尝试在 AWS Lambda 上启动和 运行ning 脚本,运行ning 脚本时遇到了一些问题。
解决我的每一个问题。我首先使用 virtualenv 准备了脚本并上传了它。当我尝试调用脚本时,收到以下错误。
Payload:
{"errorMessage": "Unable to import module 'handler': No module named 'pygsheets'", "errorType": "Runtime.ImportModuleError"}
这样做之后,我发现有人 mentioned 如果他们试图在他们的系统上准备库但能够在 EC2 实例上成功创建脚本,他们会遇到麻烦。
试了之后还是不行。作为预防措施,我尝试 运行 EC2 实例上的脚本。添加库文件夹的位置后,我可以更进一步。
现在我似乎陷入了一个库错误循环,出现以下两个错误。
Traceback (most recent call last):
File "handler.py", line 9, in <module>
import pygsheets as py
File "/home/ec2-user/package/pygsheets/__init__.py", line 14, in <module>
from pygsheets.authorization import authorize
File "/home/ec2-user/package/pygsheets/authorization.py", line 11, in <module>
from pygsheets.client import Client
File "/home/ec2-user/package/pygsheets/client.py", line 8, in <module>
from pygsheets.drive import DriveAPIWrapper
File "/home/ec2-user/package/pygsheets/drive.py", line 6, in <module>
from googleapiclient import discovery
File "/home/ec2-user/package/googleapiclient/discovery.py", line 50, in <module>
import google.api_core.client_options
ModuleNotFoundError: No module named 'google.api_core'
和
Traceback (most recent call last):
File "handler.py", line 9, in <module>
import pygsheets as py
File "/home/ec2-user/package/pygsheets/__init__.py", line 14, in <module>
from pygsheets.authorization import authorize
File "/home/ec2-user/package/pygsheets/authorization.py", line 6, in <module>
from google.oauth2 import service_account
ModuleNotFoundError: No module named 'google.oauth2'
如果我 运行 python3 -m pip install --target /home/ec2-user/package --upgrade google-auth
我在 运行 脚本时遇到第一个错误。
如果我然后 运行 python3 -m pip install --target ./package --upgrade google-api_core
我会在 运行 脚本时得到第二个错误。
如果我随后尝试修复第二个错误,我将再次遇到第一个错误。
有人知道我该如何继续吗?
一些可能有用的信息
当我制作 virtualenv 时,运行 脚本没有遇到任何问题。我只是在上传到 AWS 后遇到了问题。
总结
- 尝试使用 virtualenv 准备库。
- 本地 virtualenv 中的 运行ning 脚本没有问题,但是
No module named 'pygsheets'
错误
将文件上传到 AWS Lambda 后。
- 尝试使用 EC2 实例进行准备。出现
No module named 'google.oauth2'
错误。
- 尝试对 EC2 实例进行故障排除时,出现
No module
循环
我能够解决我的问题。看来我的 Docker 有问题。重新安装该软件后,我不再有任何图书馆问题。
我正在尝试在 AWS Lambda 上启动和 运行ning 脚本,运行ning 脚本时遇到了一些问题。
解决我的每一个问题。我首先使用 virtualenv 准备了脚本并上传了它。当我尝试调用脚本时,收到以下错误。
Payload:
{"errorMessage": "Unable to import module 'handler': No module named 'pygsheets'", "errorType": "Runtime.ImportModuleError"}
这样做之后,我发现有人 mentioned 如果他们试图在他们的系统上准备库但能够在 EC2 实例上成功创建脚本,他们会遇到麻烦。
试了之后还是不行。作为预防措施,我尝试 运行 EC2 实例上的脚本。添加库文件夹的位置后,我可以更进一步。
现在我似乎陷入了一个库错误循环,出现以下两个错误。
Traceback (most recent call last):
File "handler.py", line 9, in <module>
import pygsheets as py
File "/home/ec2-user/package/pygsheets/__init__.py", line 14, in <module>
from pygsheets.authorization import authorize
File "/home/ec2-user/package/pygsheets/authorization.py", line 11, in <module>
from pygsheets.client import Client
File "/home/ec2-user/package/pygsheets/client.py", line 8, in <module>
from pygsheets.drive import DriveAPIWrapper
File "/home/ec2-user/package/pygsheets/drive.py", line 6, in <module>
from googleapiclient import discovery
File "/home/ec2-user/package/googleapiclient/discovery.py", line 50, in <module>
import google.api_core.client_options
ModuleNotFoundError: No module named 'google.api_core'
和
Traceback (most recent call last):
File "handler.py", line 9, in <module>
import pygsheets as py
File "/home/ec2-user/package/pygsheets/__init__.py", line 14, in <module>
from pygsheets.authorization import authorize
File "/home/ec2-user/package/pygsheets/authorization.py", line 6, in <module>
from google.oauth2 import service_account
ModuleNotFoundError: No module named 'google.oauth2'
如果我 运行 python3 -m pip install --target /home/ec2-user/package --upgrade google-auth
我在 运行 脚本时遇到第一个错误。
如果我然后 运行 python3 -m pip install --target ./package --upgrade google-api_core
我会在 运行 脚本时得到第二个错误。
如果我随后尝试修复第二个错误,我将再次遇到第一个错误。
有人知道我该如何继续吗?
一些可能有用的信息 当我制作 virtualenv 时,运行 脚本没有遇到任何问题。我只是在上传到 AWS 后遇到了问题。
总结
- 尝试使用 virtualenv 准备库。
- 本地 virtualenv 中的 运行ning 脚本没有问题,但是
No module named 'pygsheets'
错误 将文件上传到 AWS Lambda 后。 - 尝试使用 EC2 实例进行准备。出现
No module named 'google.oauth2'
错误。 - 尝试对 EC2 实例进行故障排除时,出现
No module
循环
我能够解决我的问题。看来我的 Docker 有问题。重新安装该软件后,我不再有任何图书馆问题。