部署应用程序,引用数据集的麻烦。流光

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的独立路径。

【讨论】:

谢谢你的帮助,我真的很感激

以上是关于部署应用程序,引用数据集的麻烦。流光的主要内容,如果未能解决你的问题,请参考以下文章

C#进阶系列03 配置文件管理与程序集的引用版本重定向

“找到的程序集的清单定义与程序集引用不匹配”

如何在流光中缓存绘图?

在项目模板中包含对我自己的程序集的引用的最佳方式是啥?

vs中程序集的引用

流光显示时间序列的问题