Scrapyd 部署时权限被拒绝

1 投票
1 回答
1704 浏览
提问于 2025-04-18 16:41

我刚接触Scrapyd,正在尝试部署。我在Ubuntu 12.04上运行,并安装了Scrapyd的Ubuntu版本。当我运行 scrapy deploy default -p pull_scrapers 时,它返回了

Packing version 1407616523
Deploying to project "pull_scrapers" in http://localhost:6800/addversion.json
Server response (200):
{"status": "error", "message": "[Errno 13] Permission denied:'/var/lib/scrapyd/eggs/pull_scrapers'"}


Any idea why this would be? I looks to be a credentials problem, but so far as I know it doesn't have any. Any help is appreciated.

编辑:

在conf.d/000-default文件中把 debug=on 打开后,错误变成了

root@robert-GA-870A-UD3:/home/feed/Desktop/feed/scrapers# scrapy deploy default
Packing version 1407875943
Deploying to project "pull" in http://localhost:6800/addversion.json
Server response (200):
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/scrapyd/webservice.py", line 18, in render
    return JsonResource.render(self, txrequest)
  File "/usr/lib/pymodules/python2.7/scrapy/utils/txweb.py", line 10, in render
    r = resource.Resource.render(self, txrequest)
  File "/usr/lib/python2.7/dist-packages/twisted/web/resource.py", line 216, in     render
    return m(request)
  File "/usr/lib/pymodules/python2.7/scrapyd/webservice.py", line 65, in render_POST
    self.root.eggstorage.put(eggf, project, version)
  File "/usr/lib/pymodules/python2.7/scrapyd/eggstorage.py", line 21, in put
    makedirs(eggdir)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/var/lib/scrapyd/eggs/pull'

1 个回答

3

这个错误可能会让人有点困惑。试着在你的项目文件夹里运行(也就是setup.py文件所在的目录):

python setup.py clean -a bdist_egg -d /tmp/scrapydeploy-8NnURF

这样做基本上和scrapy deploy的效果是一样的,但会显示更多的信息(你可以把tmp里的目录名字改成其他的,这里只是举个例子,scrapy在'-'后面会生成一些随机的名字)。

在我的情况下,问题出在我项目里的构建目录的权限上(scrapy deploy无法删除里面的旧文件),所以我直接删除了这个目录,反正它是自动生成的。

PS:我本来想留个评论,但我的声望不够。

撰写回答