とある凡人の電算記録

アニメ感想からプログラミングまでなんでも書くよ。

「PythonによるWebスクレイピング」の落とし穴その2

 さっそくまた不具合。

↑の続編。

 

今回はP74からのScrapyで収集したデータをitems.pyで整理する、といったところでのこと。

 

runspider: error: Unable to load 'articleItems.py': attempted relative import with no known parent package

 

あれ?

items.pyで設定したArticleクラスが読み込めない。。。

 

 

scrapyで作成するファイルの構造的に、実行ファイルの階層よりもitems.pyの階層が上にあります。

 

wikiSpider

    | - wikiSpider

        | - spiders

            | - 実行ファイル.py

        | - items.py

        | - __init__.py

 

(wikiSpiderという名前で作った場合。色々ファイル省いて表記しています)

 

 

Pythonでの自作モジュールの読み込みは上の階層を参照できない!

 

最初はエラー内容を見てscrapy特有のエラーかな?と思っていましたがあまりにも解決方法がネットに落ちていないのでもしやと思ったらまさにここでした。

まーた時間使っちゃったよ!

 

 

解決方法としては上の階層の絶対パスを追加、そして読み込む。それだけ。

 

 

もともとは

 

 

直したのが

 

 

 ↓のサイトを参考にさせていただきました。

 

 

これで解決だね!

あとはさくさく動くことを祈ります。

Copyright © 2018- Yahiro Mayu All Rights Reserved.