【问题标题】:Pandas dataframe to excel not working in dockerPandas 数据框无法在 docker 中运行
【发布时间】:2020-08-13 15:56:33
【问题描述】:

我已经构建了一个 dash 应用程序,然后将其保存到 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。

知道是什么原因造成的吗?

非常感谢

【问题讨论】:

  • 您是否挂载了要写入文件的卷?
  • 几乎肯定不会,我会调查一下,谢谢!

标签: python docker plotly-dash


【解决方案1】:

当您在 Docker 中运行您的应用程序时,您无权访问主机文件系统(我假设 S:/Folder1/Folder2/Folder3/ 是您本地文件系统上的一个目录)。因此,您应该要么写入需要写入的mount the folder,要么写入存在于 Docker 容器内的位置。

【讨论】:

  • 谢谢,所以我在 Windows 中工作,在 Docker 中,在 Settings>Resources>File Sharing 下我添加了目录 'S:/Folder1/Folder2/Folder3/' 这样它就可以安装到 Docker 容器中。我通常运行我的 docker 镜像: docker run -p 8050:8050 image_name
  • 我试过: docker run -p 8050:8050 image_name -v S:/Folder1/Folder2/Folder3 并得到错误: docker: Error response from daemon: OCI runtime create failed: container_linux.go: 349:启动容器进程导致“exec:\”-v\“:$PATH 中找不到可执行文件”:未知。 – 一个
猜你喜欢
  • 1970-01-01
  • 2020-10-18
  • 1970-01-01
  • 2021-07-22
  • 2021-11-15
  • 2019-11-24
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多