为什么我的代码无法访问本地计算机URL?

时间:2015-06-23 03:17:58

标签: python api python-2.7 url filepath

我有以下代码从URL下载图像。当我提供http链接时,URL工作正常并下载图像。但是,当我提供我的机器的文件路径时,它无法下载。以下代码是我给出本地路径的方式。请指教。

IMAGE_DIR = 'C:\\Users\\mayooranM\\Desktop\\'
PERSONS = [
('Jim Parsons', IMAGE_DIR + 'download.jpg')
]

 FACES = {name: api.detection.detect(url = url)
    for name, url in PERSONS}

for name, face in FACES.iteritems():
    print_result(name, face)

以下是我得到的错误:

APIError: code=432
url=http://api.faceplusplus.com/detection/detect?  url=C%3A%5CUsers%5CmayooranM%5CDesktop%5Cdownload.jpg&api_secret=kQiSg4egEYbdqzI i242mvZbycNFb2FjE&api_key=26b82781f37e7046629778fa5b24348b
{
    "error": "IMAGE_ERROR_FAILED_TO_DOWNLOAD", 
    "error_code": 1302
}

2 个答案:

答案 0 :(得分:0)

好吧,它可能支持file:// URI语法,这意味着您应该使用正斜杠和file://前缀,但问题更可能是从根本上访问本地文件的库是不能在通过网络访问文件的相同操作附近执行任何操作。

当您访问本地文件时,您没有"正在下载"什么都没有;你只是在阅读一个文件。为了支持远程URI而编写的许多库也不是为文件访问而编写的,因为他们假设您在使用库之前已经确定它是本地文件还是网络可访问文件。

答案 1 :(得分:0)

使用“url”参数时,Face ++将尝试从该位置下载文件...因此,您传递的URL需要可公开访问(或至少可由Face ++服务器访问)。无法访问本地文件路径,因此每次都会失败。

如果图像文件无法公开,则必须使用“img”参数将图像POST到Face ++。