Python - 无法导入本地库

标签 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'

最佳答案

您的 crawler 目录中缺少

__init__.py。添加一个空的__init.__.py,然后您将能够导入crawler.db模块。

另外,请注意,您有两个目录作为 crawler(还有一个是您的项目)。重命名目录之一,否则您可能会遇到更多与导入相关的错误。

关于Python - 无法导入本地库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41914805/

相关文章:

python - MySQLdb : all values set to NULL when filling a new column procedurally

python - 使用 pandas python 计算每日气候学

python - 通过在 Jupyter 中内联重置 Jupyter 中的 Matplotlib 图形大小

python - 使用pypi安装scrapy时出错

python - Xpath 一次从子节点和当前节点选择文本

python - 在scrapy中修改CSV导出

Python Django 奇怪地映射到意外的 URL

python - 如何修改数据库中已经迁移的模型?

python - 如何在python的scrapy选择器中只提取文本

python - 如何使用scrapy获取XMLHTTP请求的数据