部署我的 streamlit webapp 时如何修复图像错误?
How to fix an error with images when deploying my streamlit webapp?
我首先制作了一个文本文件 (requirements.txt
),其中包含代码中使用的库的所有版本。所以我在 GitHub 上打开了一个文件夹并添加了所有必要的文件。
我使用 Streamlit Sharing 进行部署,但它返回了以下错误:
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/script_runner.py", line 379, in _run_script
exec(code, module.__dict__)
File "/app/orbitas-relativistics/webapp.py", line 15, in <module>
image1 = Image.open(r'C:/Users/isabe/.streamlit/titulo11.png')
File "/home/appuser/venv/lib/python3.7/site-packages/PIL/Image.py", line 2953, in open
fp = builtins.open(filename, "rb")
我的代码没有命令 fp = builtins.open(filename, "rb")
,甚至没有 2953 行。它只有395.
关于图像,我将它们上传到我的 Visual Studio 代码(托管代码的地方)的 .streamlit
文件夹中。它给出了错误
FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/isabe/.streamlit/titulo11.png'
有谁知道我应该如何修复此错误并继续部署我的网站?
感谢您的帮助。
一般来说,在部署时引用确切的文件名并不是一个好主意,因为几乎可以肯定,您部署的机器与您的开发机器具有不同的驱动器映射。
在这种情况下,您使用的是 Windows 文件路径并且 Streamlit Cloud 是 Debian 映像。根据您的 Git link,您的文件位于根目录中,因此您可以指定 image1 = Image.open('titulo11.png')
它将在 Streamlit Cloud 上运行(虽然它可能不适用于您的开发机器)。
为了让您的代码在两台机器上都能正常工作,我建议使用 pathlib 之类的东西以编程方式确定文件所在的位置,而不必检查文件所在的文件目录级别。
我首先制作了一个文本文件 (requirements.txt
),其中包含代码中使用的库的所有版本。所以我在 GitHub 上打开了一个文件夹并添加了所有必要的文件。
我使用 Streamlit Sharing 进行部署,但它返回了以下错误:
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/script_runner.py", line 379, in _run_script
exec(code, module.__dict__)
File "/app/orbitas-relativistics/webapp.py", line 15, in <module>
image1 = Image.open(r'C:/Users/isabe/.streamlit/titulo11.png')
File "/home/appuser/venv/lib/python3.7/site-packages/PIL/Image.py", line 2953, in open
fp = builtins.open(filename, "rb")
我的代码没有命令 fp = builtins.open(filename, "rb")
,甚至没有 2953 行。它只有395.
关于图像,我将它们上传到我的 Visual Studio 代码(托管代码的地方)的 .streamlit
文件夹中。它给出了错误
FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/isabe/.streamlit/titulo11.png'
有谁知道我应该如何修复此错误并继续部署我的网站?
感谢您的帮助。
一般来说,在部署时引用确切的文件名并不是一个好主意,因为几乎可以肯定,您部署的机器与您的开发机器具有不同的驱动器映射。
在这种情况下,您使用的是 Windows 文件路径并且 Streamlit Cloud 是 Debian 映像。根据您的 Git link,您的文件位于根目录中,因此您可以指定 image1 = Image.open('titulo11.png')
它将在 Streamlit Cloud 上运行(虽然它可能不适用于您的开发机器)。
为了让您的代码在两台机器上都能正常工作,我建议使用 pathlib 之类的东西以编程方式确定文件所在的位置,而不必检查文件所在的文件目录级别。