Python - 无法导入本地库

时间:2017-01-28 21:02:33

标签: python scrapy

我有一个scrapy爬虫,我想在我的爬虫中使用本地库。

所以,这是我的目录模型:

enter image description here

有两个重要文件db / base.py和/crawler/spiders/adilisik.py

这里是base.py

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

engine = create_engine("mysql+pymysql://xxx:yyy@localhost/test-db")
Session = sessionmaker(bind=engine)
session = Session()

以下是adilisik.php的一些内容

    # -*- coding: utf-8 -*-
    import hashlib
    import re
    import scrapy

    from crawler.db.base import Base

    class AdilisikSpider(scrapy.Spider):
        name = "adilisik"
        allowed_domains = ['adl.com.tr']
        start_urls = ['http://adl.com.tr']
        urls = set()


        def __init__(self, retailer='', *args, **kwargs):
            super(AdilisikSpider, self).__init__(*args, **kwargs)

        def parse(self, response):
.....
.....

但是我无法使这段代码有效。

此行破坏了我的代码。

from crawler.db.base import Base

我收到了这个错误:

    from crawler.db.base import Base
ImportError: No module named 'crawler.db'
Could not load spiders from module 'crawler.spiders'. Check SPIDER_MODULES setting

我做错了什么?

修改1

Moinuddin Quadri's suggestion之后,我在抓取工具目录中创建了 init .py并重命名了抓取工具目录。但现在我收到了以下错误

ImportError: No module named 'crawler.settings'

1 个答案:

答案 0 :(得分:1)

您的抓取工具目录中缺少

__init__.py。添加一个空的__init.__.py,然后您就可以导入crawler.db模块。

另外,请注意您有两个目录crawler(另外一个目录是您的项目)。重命名其中一个目录,否则您可能会面临更多与导入相关的错误。