【问题标题】:Scrapy-deploy to Scrapyd doesn't install requirements pointed in setup.pyScrapy-deploy 到 Scrapyd 不会安装 setup.py 中指出的要求
【发布时间】:2017-09-24 12:09:17
【问题描述】:

我有一个用 Scrapy 编写的项目。这个蜘蛛在 setup.py 中有很多要求。这是一个简单的示例。我跑

scrapyd-deploy

并有以下输出

Packing version 1506254163
Deploying to project "quotesbot" in http://localhost:6800/addversion.json
Server response (200):
......................... [CUTTED TRACEBACK] ...........
\"/private/var/folders/xp/c949vlsd14q8xm__dv0dx8jh0000gn/T/quotesbot-1506254163-e50lmcfx.egg/quotesbot/spiders/toscrape-css.py\",
 line 4, in <module>\n
ModuleNotFoundError: No module named 'sqlalchemy'\n"}

但是

setup.py in the same directory:

# Automatically created by: scrapyd-deploy

from setuptools import setup, find_packages

setup(
    name         = 'quotesbot',
    version      = '1.0',
    packages     = find_packages(),
    entry_points = {'scrapy': ['settings = quotesbot.settings']},
    install_requires=[
        'scrapy-splash',
         [ SOME REQUIREMENTS]
        'sqlalchemy'
    ],
)

【问题讨论】:

  • 这是全新的部署还是蜘蛛的重新部署?
  • 这是蜘蛛的初始部署。有史以来第一次。

标签: python scrapy setuptools scrapy-spider scrapyd


【解决方案1】:

我检查了scrapyd 源代码,它没有运行您项目的setup.py。它只是解包包含依赖信息而不是依赖本身的 egg。下面是addversion api的代码

class AddVersion(WsResource):

    def render_POST(self, txrequest):
        project = txrequest.args[b'project'][0].decode('utf-8')
        version = txrequest.args[b'version'][0].decode('utf-8')
        eggf = BytesIO(txrequest.args[b'egg'][0])
        self.root.eggstorage.put(eggf, project, version)
        spiders = get_spider_list(project, version=version)
        self.root.update_projects()
        UtilsCache.invalid_cache(project)
        return {"node_name": self.root.nodename, "status": "ok", "project": project, "version": version, \
            "spiders": len(spiders)}

在self.root.eggstorage.put(eggf, project, version) 基本上只是提取鸡蛋之后,它直接运行spiders = get_spider_list(project, version=version),因此没有进行这样的设置。

因此,您的 egg 需要包含所有依赖项,这意味着您不会使用 scrapyd-deploy 构建 egg。我找不到太多文档来看看这是否可能

所以你看到的是因为 srapyd 缺乏实现。你应该在http://github.com/scrapy/scrapyd/提出一个错误或增强请求

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
  • 1970-01-01
相关资源
最近更新 更多