2015-02-06 124 views
0

我在使用the URL object时遇到问题the web package of the pattern library。当我尝试从URL对象下载文本时,我收到一个权限错误。pattern.web URL下载错误 - IOError:[Errno 13]权限被拒绝

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运行蟒蛇当了这个没有问题,但我想明白是怎么回事,如何我能避免授予root权限,以蟒蛇只是下载一个URL。有没有人有任何关于这个问题的见解?

运行Ubuntu 12.04,蟒蛇2.7.3,病毒码版本2.6

回答

0

将用户/组/usr/local/lib/python2.7/dist-packages/pattern/web/更改为我的用户似乎已解决此问题。我通过pip安装了模式,没什么特别,所以我假设这是一个错误,并且在安装模式时权限太紧。

+0

虽然这是一个非常粗略的解决方法。 '/ usr/local/lib'下的任何用户都不应该有写权限。 – tripleee 2015-02-06 05:29:42

+0

同意。我已经提交了[模式github上的问题](https://github.com/clips/pattern/issues/105)。 – sharshofski 2015-02-06 15:43:12

0

您需要在您有写访问,因为它试图创建一个缓存文件的目录中运行它。

(大概是想从当你与sudo运行它清理缓存文件,因为它似乎已经污染了糠您的系统目录。)

看起来你可以尝试

urlResponse = urlObject.download(cached=False) 

到禁用缓存功能。

+0

感谢您的回复。我认为你是对的,问题是我没有正确的权限来搞乱'pattern'缓存。因为'touch test'和'python -c'open(“test.txt”,“w”)。write(“hello world \ n”)''我知道我在我运行的目录中有写权限都工作。但是当我运行'pattern.web.cache.clear()'作为非root用户时,我得到了与上面相同的错误。对我而言,令人困惑的部分是我没有做任何花哨的安装模式,所以我没有了解/ usr/local/lib中的权限如何可能不正确。 – sharshofski 2015-02-06 05:04:05

+0

作为一个普通用户,你不能写''/ usr/local/lib'。我一直假设你正在运行'/ usr/local/lib'中的代码,并且它只是写入当前目录,正如任何理智的代码一样。 – tripleee 2015-02-06 05:05:23

+0

是的。这对我来说太令人惊讶了 - 其含义是为了在pattern.web中使用缓存,您的用户需要在'/ usr/local/lib'下写入对模式安装目录的访问权限,这似乎违反了惯例。 在我更改安装目录中的权限之前,我没有尝试'cached = False',但我敢打赌,这样做可行。 – sharshofski 2015-02-06 05:12:57

相关问题