web-dev-qa-db-ja.com

Scrapy:ImportError:itemsという名前のモジュールはありません

スクレイピーを実行しようとすると、次のエラーが表示されますImportError:itemsという名前のモジュールはありません

スクレイピングしたいもののリストをitems.pyに追加し、spider.pyにfrom spider.items import SpiderItemを使用してクラスをインポートしました

それが読み込まれない理由がわかりません...

パッケージレイアウトは...

./spider
./spider/pipelines.py
./spider/settings.py
./spider/spiders
./spider/spiders/spider_spider.py
./spider/spiders/test.py
./spider/spiders/__init__.py
./spider/middlewares.py
./spider/__init__.py
./spider/items.py
18
jsjc

差出人 Googleグループのこのメッセージ

あなたのスパイダーモジュールはあなたのスクレイピープロジェクトモジュールと同じ名前が付けられているので、pythonはbyub.pyスパイダーに関連するアイテムをインポートしようとしています。

python imports、see http://www.python.org/dev/peps/pep-0328 の共通の後悔に直面しています

クイックフィックス:

  • スパイダーモジュールの名前をbyub_org.pyなどに変更します。
  • またはfrom __future__ import absolute_import byub.pyスパイダー。
  • または、プロジェクトの名前をbyubbotなどに変更します。
26
Nick Craig-Wood

私のスパイダーの名前がスクラッププロジェクトと同じだったので、たまたまこの問題に直面しました。

クモの名前を変更するだけで作成できます。

4
hahakubile

ファイルの名前を変更せずに、from spider.items import SpiderItemfrom .. import itemsに変更し、コードでitems.SpiderItemとして項目を参照します。

2
Fan Jin

これは、スパイダーモジュールの名前を変更するための優れたソリューションです。

ただし、名前を変更した後、関連する*.pycファイルを削除することを忘れないでください*.pycファイルがcacheのような役割を果たすことを考慮してください。

2
henry zhu

ネクロポストしてすみません。ファイルに入れてみてください./spider/__init__.py

それ

 import items
1
while1pass

Spider.pyファイルのインポートステートメントの後に次の行がありません。

クラスProjectnamegoeshereSpider(BaseSpider):

0
Theodis Butler