部署应用程序,引用数据集的麻烦。流光
Posted
技术标签:
【中文标题】部署应用程序,引用数据集的麻烦。流光【英文标题】:Deploying app, troubles to reffer to datasets. Streamlit 【发布时间】:2022-01-07 05:57:55 【问题描述】:您好,我在通过 Streamlit 部署我的应用程序时遇到了另一个问题。它可以在本地工作,但是当我想在 git hub 上上传它时它不起作用..不知道出了什么问题。文件路径好像有问题:
"File "/app/streamlit/bobrza.py", line 14, in <module>
bobrza_locations = pd.read_csv(location)"
这是我的 github 存储库的链接。将非常感谢您的帮助。提前致谢。
https://github.com/Bordonous/streamlit
【问题讨论】:
【参考方案1】:问题是您将 bobrza1.csv 和 route.csv 的路径硬编码到计算机上的路径,因此在不同环境中运行代码时,路径不合法。
解决方案是让位置独立于运行环境,为此我们将使用以下内容:
-
__file__ 变量 - 当前 python 模块(.py 文件)的路径。
os.path.dirname() - 从路径获取目录名称的函数。
os.path.abspath() - 一个获取标准化绝对路径版本的函数。
os.path.join() - 一个连接一个或多个路径组件的函数。
现在您需要将代码中的 location 和 location2 变量更改为以下内容:
# get the absolute path to the directory contain the .csv file
dir_name = os.path.abspath(os.path.dirname(__file__))
# join the bobrza1.csv to directory to get file path
location = os.path.join(dir_name, 'bobrza1.csv')
# join the route.csv to directory to get file path
location2 = os.path.join(dir_name, 'route.csv')
导致bobrza1.csv和route.csv的独立路径。
【讨论】:
谢谢你的帮助,我真的很感激以上是关于部署应用程序,引用数据集的麻烦。流光的主要内容,如果未能解决你的问题,请参考以下文章