模式.webURL dowload error IOError:[Errno 13]权限被拒绝

2024-06-16 14:54:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用来自the ^{} package of the pattern librarythe URL object时遇到问题。当我试图从URL对象下载文本时,我得到一个权限错误。在

Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pattern.web
>>> urlObject=pattern.web.URL("http://google.com")
>>> urlResponse = urlObject.download()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pattern/web/__init__.py", line 426, in download
    cache[id] = data
  File "/usr/local/lib/python2.7/dist-packages/pattern/web/cache/__init__.py", line 96, in __setitem__
    f = open(self._hash(k), "wb")
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pattern/web/cache/tmp/c7b920f57e553df2bb68272f61570210'

在使用sudo运行python时,我没有遇到任何问题,但是我想了解一下这里发生了什么,以及如何避免向python授予仅用于下载URL的根权限。有人对这个问题有什么见解吗?在

运行Ubuntu12.04,Python2.7.3,模式版本2.6


Tags: theinweburl权限cachelibpackages
2条回答

您需要在您有写权限的目录中运行它,因为它正在尝试创建缓存文件。在

(可能需要清除使用sudo运行它时的缓存文件,因为它似乎已经用垃圾纸污染了您的系统目录。)

看来你可以试试

urlResponse = urlObject.download(cached=False)

禁用缓存功能。在

{/cd1>的问题似乎已经解决了。我是通过pip安装pattern的,没什么特别的,所以我假设这是一个bug,安装pattern时权限太紧了。在

相关问题 更多 >