2017-09-24 10 views
2

私はScrapyで書かれたプロジェクトを持っています。このスパイダーはsetup.pyに多くの要件があります。ここには簡単ながあります。私はscrapydソースコードをチェックし、それはあなたのプロジェクトのsetup.pyを実行していないScrapydへのScrapy-deployは、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' 
    ], 
) 
+0

これはスパイダーの新規配備ですか?再配備ですか? –

+0

これはスパイダーの初期展開です。初めて。 – lovesuper

答えて

3

を持っています。それは、依存関係情報は含まれているが、依存関係自体は含まれていない卵をアンパックします。以下に基本的には卵を抽出addversion APIのコードself.root.eggstorage.put(eggf, project, version)

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)} 

、それは直接spiders = get_spider_list(project, version=version)を実行し、したがって、そのようなとして行わない設定はありません。

したがって、卵にはすべての依存関係を含める必要があります。つまり、scrapyd-deployを使用して卵を作りません。私はそれが可能かどうかを確認するための多くのドキュメントを見つけることができませんでした

あなたが見ているのは、実装が欠けているsrapydのためです。バグや拡張リクエストをhttp://github.com/scrapy/scrapyd/にオープンする必要があります。

関連する問題