我正在尝试使用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框架进行开发。
答案 0 :(得分:2)
这是权限问题。您无权写入您在服务器中尝试的位置。尝试在您拥有权限的其他位置或为该目录设置适当的权限。
urlretrieve(url, filename=None, reporthook=None, data=None)
第二个参数是您要写入的文件名。由于您是从webapp运行的,因此运行webapp的进程应该具有您尝试编写的位置的权限。