使用urllib在python中保存图像

时间:2012-10-17 04:49:14

标签: python pyramid urllib waitress

我正在尝试使用urllib从网络上保存图像,我不断收到此错误:

[Wed Oct 17 10:03:43 2012] [error] [client 223.232.227.124] urllib.urlretrieve(image,ban)
[Wed Oct 17 10:03:43 2012] [error] [client 223.232.227.124]   File "/usr/lib/python2.6/urllib.py", line 93, in urlretrieve
[Wed Oct 17 10:03:43 2012] [error] [client 223.232.227.124]     return _urlopener.retrieve(url, filename, reporthook, data)
[Wed Oct 17 10:03:43 2012] [error] [client 223.232.227.124]   File "/usr/lib/python2.6/urllib.py", line 243, in retrieve
[Wed Oct 17 10:03:43 2012] [error] [client 223.232.227.124]     tfp = open(filename, 'wb')
[Wed Oct 17 10:03:43 2012] [error] [client 223.232.227.124] IOError: [Errno 13] Permission denied: '/public/env/lib/python2.6/site-packages/project-0.0-py2.6.egg/project/images/series/graphical/104281-g2.jpg'

代码:

ban='/public/env/project/project/images/series/%s'%(banner)
image='http://www.thetvdb.com/banners/%s'%(banner)
urllib.urlretrieve(image,ban)

代码在我的localhost上使用Pyramid服务器服务器以及使用mod_wsgi但在生产服务器上也没有正常工作。

我正在使用Pyramid框架进行开发。

1 个答案:

答案 0 :(得分:2)

这是权限问题。您无权写入您在服务器中尝试的位置。尝试在您拥有权限的其他位置或为该目录设置适当的权限。

urlretrieve(url, filename=None, reporthook=None, data=None)

第二个参数是您要写入的文件名。由于您是从webapp运行的,因此运行webapp的进程应该具有您尝试编写的位置的权限。