在Heroku Python上加载分类器

时间:2017-12-01 02:13:53

标签: python opencv heroku cascade-classifier

我正在使用python从OpenCV中的文件加载级联分类器。由于CascadeClassifier()方法要求文件名为绝对文件名,因此我必须加载绝对文件名。

但是,我正在Heroku上部署和使用它,我似乎无法获得文件的绝对路径。我尝试过使用os.getcwd() + '\cascader_file.xml',但仍然无效。

我想知道如何在Heroku部署中加载分类器

2 个答案:

答案 0 :(得分:0)

我明白了。我需要做的就是使用os.path.abspath()方法将相对路径转换为绝对路径

答案 1 :(得分:0)

如果您要查找的文件位于脚本旁边,则可以获取脚本目录,然后找到目标资源/ conf文件。这比使用os.getcwd更好,因为您当前的目录可能与脚本的目录不同。

例如,您的目录是这样的:

-- my_project
  |-- main.py
  |-- cascader_file.xml

在脚本cascader_file.xml中找到main.py

d = os.path.dirname(os.path.abspath(__file__))  # your script's dir, my_project
filepath = os.path.join(d, "cascader_file.xml")
filepath = os.path.abspath(filepath) # make it an absolute path

顺便说一句,使用os.path.join比直接连接路径部分更安全,更平台兼容。