python - /tmp/ 文件夹的 AWS Lambda 文件错误问题
问题描述
我试图基本上在 AWS Lambda 中编写一个文件。这是我分析文件并写入 Lambda 的 analyze.py 脚本。
from main import Analyzer
import argparse
import sys
# Takes helper functions from main.py and prints filament usage and print time
def parse_args():
parser = argparse.ArgumentParser(description="Gcode Info Extractor")
parser.add_argument('path', type=str)
return parser.parse_args()
def giveInput():
args = '/tmp/' + 'output.gcode'
#path = '/tmp/' + args.path
analyzer = Analyzer(args)
time = analyzer.get_time()/60
filUsage = analyzer.get_filament_usage()
# Lambda issues, so going to try to make the return of this function simply the two variables I need..
neededInput = "%.2f, %s" %(filUsage, time)
return (neededInput)
{
"errorMessage": "[Errno 2] No such file or directory: '/tmp/output.gcode'",
"errorType": "FileNotFoundError",
"stackTrace": [
[
"/var/task/lambda_function.py",
20,
"pp_handler",
"data = giveInput()"
],
[
"stl2gcode/analyze.py",
14,
"giveInput",
"analyzer = Analyzer(args)"
],
[
"stl2gcode/main.py",
45,
"__init__",
"self.__process()"
],
[
"stl2gcode/main.py",
57,
"__process",
"with open(self.__file_path, \"r\") as fp:"
]
]
}
问题是,当我错误地将 output.gcode 文件包含在我在 Lambda 上的部署包中时,只需阅读它就没有问题。但我的问题是我在写那个文件的时候。
我编写该文件的方式是通过一个名为mandoline_py
我执行此命令的库:
mandoline -o /tmp/output.gcode -n /tmp/input.stl
问题不在于库,因为当我尝试在 giveInput() 函数中使用“input.stl”而不是“output.gcode”时,Lambda 找到的文件没有问题。知道我能做什么吗?
解决方案
推荐阅读
- angular - 带有 webpack 的 Angular 路由引导选项卡
- c# - Xamarin:如何扩展 WebView?
- python - 如何区分 Python 或 Matlab 是否错误/故障?
- pandas - 通过划分 Pandas 中的其他两个子列,在 multiIndex 中创建一个新的子列
- javascript - 如何缓存来自 Node 中使用 fetch 的异步函数的数据
- sql-server - 经典 ASP、Windows 身份验证(带 PassThrough)、禁用匿名、带服务帐户的 AppPool ID、仍然向 SQL Server 发出双跳问题
- ios - 带有音频文件的 UNNotificationAttachment 的用例是什么?
- sql - Postgres - INSERT INTO 和用例何时
- scala - Scala:如何实例化一个继承当前上下文的解释器?
- sql-server - 实体框架在从数据库更新时不返回地理列