问题描述
我构建了一个破折号应用程序,然后将其保存到docker,并尝试使用以下方式导出数据表:
pd.DataFrame(rows).to_excel(file,index=False)
我收到以下错误
Traceback (most recent call last):
File "/usr/src/app/app.py",line 246,in update_output
pd.DataFrame(rows).to_excel(file,index=False)
File "/usr/local/lib/python3.8/site-packages/pandas/core/generic.py",line 2023,in to_excel
formatter.write(
File "/usr/local/lib/python3.8/site-packages/pandas/io/formats/excel.py",line 742,in write
writer.save()
File "/usr/local/lib/python3.8/site-packages/pandas/io/excel/_openpyxl.py",line 43,in save
return self.book.save(self.path)
File "/usr/local/lib/python3.8/site-packages/openpyxl/workbook/workbook.py",line 392,in save
save_workbook(self,filename)
File "/usr/local/lib/python3.8/site-packages/openpyxl/writer/excel.py",line 291,in save_workbook
archive = ZipFile(filename,'w',ZIP_DEFLATED,allowZip64=True)
File "/usr/local/lib/python3.8/zipfile.py",line 1251,in __init__
self.fp = io.open(file,filemode)
FileNotFoundError: [Errno 2] No such file or directory: 'S:/Folder1/Folder2/Folder3/file_name.xlsx'
当我在python中运行代码时,代码工作正常,仅在docker容器中中断。我从需求文件中安装了openpyxl。
任何想法可能是什么原因造成的?
非常感谢
解决方法
在Docker中运行应用程序时,您无权访问主机文件系统(我假设S:/Folder1/Folder2/Folder3/
是本地文件系统上的目录)。因此,您应该mount the folder需要写入,或写入Docker容器内的某个位置。