2015-02-06 141 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

相關問題