为什么 Serverless 在尝试打包或部署时会产生 Invalid Cross-device link 错误?

lar*_*ray 7 python aws-lambda serverless-framework serverless

运行任一命令时: sudo serverless package or sudo serverless deploy

我得到以下回溯:

错误:错误:异常:回溯(最近一次调用):文件“/var/lang/lib/python3.6/shutil.py”,第 550 行,移动 os.rename(src, real_dst) OSError:[Errno 18 ] 无效的跨设备链接:'/tmp/pip-target-wqc5grcw/lib/python/setuptools' -> '/var/task/setuptools'

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“/var/lang/lib/python3.6/site-packages/pip/_internal/cli/base_command.py”,第 228 行,在 _main status = self.run(options, args ) 文件“/var/lang/lib/python3.6/site-packages/pip/_internal/cli/req_command.py”,第 182 行,在包装器 return func(self, options, args) 文件“/var/lang/ lib/python3.6/site-packages/pip/_internal/commands/install.py”,第 456 行,在运行 options.target_dir、target_temp_dir、options.upgrade 文件“/var/lang/lib/python3.6/site- package/pip/_internal/commands/install.py”,第 514 行,在 _handle_target_dir target_item_dir 文件“/var/lang/lib/python3.6/shutil.py”,第 561 行,在 move symlinks=True 中)文件“/var /lang/lib/python3.6/shutil.py”,第 321 行,在 copytree os.makedirs(dst) 文件“/var/lang/lib/python3.6/os.py”,第 220 行,在 makedirs mkdir(名称,模式)PermissionError:[Errno 13] 权限被拒绝:'/var/task/setuptools'

我创建了几个不同的项目,它们在本地工作,但在尝试部署或打包时,它们从未超出这个无效的交叉链接设备错误。

我有哪些选择?

log*_*icy 10

编辑:我尝试使用我的 virtualenv,卸载/重新安装serverless-python-requirements,删除/重新拉取lambci/lambdaDocker 映像,没有骰子。

然后,我偶然发现了这个GH 问题。正如其中所暗示的,实验性 Docker 功能使用 gRPC FUSE 进行文件共享似乎是原因。我现在已经在 Docker 首选项中关闭了它并且部署成功。


tmo*_*tmo 1

我刚刚遇到了类似的问题。请参阅此问题以获取可能的解决方案。

总之,

  1. 删除 /Library/Caches/serverless-python-requirements/ 中的所有缓存包
  2. 删除现有的 docker 镜像lam​​bda/lambda build-python3.8