首页 > scrapy import同目录下module出错

scrapy import同目录下module出错

Python3.4 scrapy1.1.0 windows7
这是我的文件结构:

我在myspider开头写了:

import scrapy
import mysqls
import pymysql
import const
from const import DB_CONFIG

但crawl时报错ImportError: No module named 'mysqls',而且const也无法导入。
Traceback:

D:\byr>scrapy crawl bbs
Traceback (most recent call last):
  File "d:\python\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\python\Scripts\scrapy.exe\__main__.py", line 9, in <module>
  File "d:\python\lib\site-packages\scrapy\cmdline.py", line 141, in execute
    cmd.crawler_process = CrawlerProcess(settings)
  File "d:\python\lib\site-packages\scrapy\crawler.py", line 238, in __init__
    super(CrawlerProcess, self).__init__(settings)
  File "d:\python\lib\site-packages\scrapy\crawler.py", line 129, in __init__
    self.spider_loader = _get_spider_loader(settings)
  File "d:\python\lib\site-packages\scrapy\crawler.py", line 325, in _get_spider
_loader
    return loader_cls.from_settings(settings.frozencopy())
  File "d:\python\lib\site-packages\scrapy\spiderloader.py", line 33, in from_se
ttings
    return cls(settings)
  File "d:\python\lib\site-packages\scrapy\spiderloader.py", line 20, in __init_
_
    self._load_all_spiders()
  File "d:\python\lib\site-packages\scrapy\spiderloader.py", line 28, in _load_a
ll_spiders
    for module in walk_modules(name):
  File "d:\python\lib\site-packages\scrapy\utils\misc.py", line 71, in walk_modu
les
    submod = import_module(fullpath)
  File "d:\python\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "D:\byr\byr\spiders\myspider.py", line 2, in <module>
    import mysqls
ImportError: No module named 'mysqls'

直接在idle下运行myspider就没有问题。
我是初学者,百度了好久都百度不出结果,希望大大们不吝赐教!


关键在于你启动的时候是在根目录下的 所以import是不应该直接这样的

import mysqls
import pymysql
import const

应该为 byr.spiders.mysqls

或者相对路径 from . import mysqls (这个应该更好)

【热门文章】
【热门文章】