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是不应该直接这样的
应该为
byr.spiders.mysqls
或者相对路径
from . import mysqls
(这个应该更好)