簡體   English   中英

無法將 Scrapy Spider 導入腳本

[英]Unable to import Scrapy Spider into Script

除了將class SomeSpider 從spider/src.py SomeSpider main/main.py之外,我所有的導入都在工作。 當我在終端中調用scrapy crawl somespider時,蜘蛛本身就會運行。 python 是否無法識別帶有scrapy.spidermodules

我的文件結構:

/whiskers
-/venv
--/bin
--/include
--/lib
--/whiskers
---/whiskers
----/main
-----/main.py
----/spiders
-----/__init__.py
-----/src.py
----/__init__.py
----/items.py
----/middlewares.py
----/pipelines.py
----/settings.py
---/scrapy.cfg
--/pyvenv.cfg

將其中任何一個放在main/main.py

from whiskers.spiders.src import SomeSpider
   
(or) 

from whiskers.whiskers.spiders.src import SomeSpider

(or) 

from whiskers.venv.whiskers.whiskers.spiders.src import SomeSpider

給出錯誤:

ModuleNotFoundError: No module named 'whiskers'

嘗試:

from ..spiders.src import SomeSpider

(or)

from .. import LawSpider

給出錯誤:

ImportError: attempted relative import with no known parent package

spider/src.py中,蜘蛛本身只是一個基本的scrapy.Spider名為SomeSpider

class SomeSpider(scrapy.Spider):

main.py腳本放在 package 文件夾之外。 package 文件夾是包含__init__.py的文件夾。 Guido van Rossum 對此的想法是,腳本 - __name__ == '__main__'的起點、模塊 - 不應位於包,而應位於包 包應僅包含導入到腳本或其他包中的庫代碼。

在這種情況下,最簡單的方法是將 main.py 向上移動兩層:

whiskers/
  venv/
    bin/
    include/
    lib/
    whiskers/
      main.py  <-- put it here
      whiskers/
        __init__.py
        spiders/
          __init__.py
          src.py
        items.py
        middlewares.py
        pipelines.py
        settings.py
      scrapy.cfg
    pyvenv.cfg

然后在 main.py 中執行from whiskers.spiders.src import SomeSpider

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM