解決したいこと
webスクレイピングツールであるscrapyを用いて作成した自作モジュールをデバッグする際に
ModuleNotFoundErrorが出て困っています。
pythonで実行した際にはエラーは出ず実行できるのですがvscodeのデバッガーツールを使ってデバッグした時のみ
ModuleNotFoundErrorが出ます。
発生している問題・エラー
python debug console
ModuleNotFoundError: No module named 'company'
該当するソースコード
quotes2.py
#外部モジュール(自作)のインポートとcsvの形成 import scrapy import csv import pathlib import os import sys import pprint #sys.path.append(os.path.dirname(os.path.abspath(__file__))) #sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) #sys.path.append(str(pathlib.Path(__file__).resolve().parent) + "/../") #pprint.pprint(sys.path) #print(os.path) #print(pathlib.Path(__file__).resolve())#__file__:現在のfile,resolve():絶対パス from company.items import CompanyItem 下記省略
該当するソースコード
items.py
import scrapy class CompanyItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() #name = scrapy.Field() heading = scrapy.Field() excerpt = scrapy.Field() address = scrapy.Field()
###ディレクトリ構造
下のquotes2.pyから一つ上のitems.pyのクラスをimportしようと試みています。
カレントディレクトリは
python/company
で実行コマンドは
scrapy crawl quotes2 --nolog
です。
自分で試したこと
上記のquotes2.pyでコメントアウトしているようにpathを追加してみたりもしてみましたがデバッグする際の問題なのでlaunch.json等をいじってみたりもしました。しかしModuleNotFoundErrorのエラーは変わらないままでqiitaで投稿することで質問することにしました。
json:.vscode/launch.json
1{ 2 "name": "Python: Current File", 3 "type": "python",//node python等 4 "request": "launch",//特定のファイル:launch,既に動いているファイル:attach 5 "program": "${file}",//現在アクティブなファイル 6 "console": "integratedTerminal", 7 //"justMyCode" : false,//外部ライブラリの探索 8 "python.autoComplete.extraPaths": [ 9 "C:\Users\Owner\OneDrive\ドキュメント\python\company\company", 10 ], 11 }, 12 { 13 "name": "Scrapy: Current Spider", 14 "type": "python", 15 "request": "launch", 16 "program": "crawl.py", 17 "args": [ 18 "${fileBasenameNoExtension}" 19 ], 20 "console": "integratedTerminal" 21 },
回答2件
あなたの回答
tips
プレビュー