python - scrapy import同目录下module出错
怪我咯
怪我咯 2017-04-17 17:59:24
[Python讨论组]

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就没有问题。
我是初学者,百度了好久都百度不出结果,希望大大们不吝赐教!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
ringa_lee

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

import mysqls
import pymysql
import const

应该为 byr.spiders.mysqls

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号