将外部文件加载到Web2Py控制器方法中的错误

时间:2016-03-31 17:49:17

标签: python web-services opencv web-deployment web2py

我正在尝试构建一个也使用OPENCV(计算机视觉库)的web2Py api。我已经在本地机器上的文件夹中测试了OPENCV加载方法(代码工作)。在我的web2Py应用程序的默认控制器中创建方法时,代码会运行,但不会加载级联,尽管.xml文件与应用程序控制器下的default.py位于同一文件夹中。我检查了权限并启用了.xml文件的所有权限(似乎不是问题)。我是否需要将文件放在不同的位置?

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

no_classifier = face_cascade.empty()

级联总是为空返回true(它没有加载)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

Python工作目录不是包含控制器的文件夹。通常,最好简单地构造文件的完整路径。还建议将此类文件放在应用程序的/ private文件夹中:

    import os
    filepath = os.path.join(request.folder, 'private',
                            'haarcascade_frontalface_default.xml')
    face_cascade = cv2.CascadeClassifier(filepath)