python - scrapy import同目录下module出错

 海豚的眼泪v 发布于 2022-10-29 12:48

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 
  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 "", line 2254, in _gcd_import
  File "", line 2237, in _find_and_load
  File "", line 2226, in _find_and_load_unlocked
  File "", line 1200, in _load_unlocked
  File "", line 1129, in _exec
  File "", line 1471, in exec_module
  File "", line 321, in _call_with_frames_removed
  File "D:\byr\byr\spiders\myspider.py", line 2, in 
    import mysqls
ImportError: No module named 'mysqls'

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

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

    import mysqls
    import pymysql
    import const

    应该为 byr.spiders.mysqls

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

    2022-10-30 23:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有