繁体   English   中英

如何将我自己的模块导入到scrapy项目中?

[英]How to import my own modules into a scrapy project?

我正在尝试编写一个带有多个管道的爬虫蜘蛛。 我选择哪个管道与蜘蛛的属性一起使用。 该属性是我自己编写的枚举类型。 现在的问题是在管道类中导入该枚举。 每次尝试导入时,都会出现以下错误:

from data.file_types import FileTypes
builtins.ModuleNotFoundError: No module named 'data'

我已经尝试了不同的变体来放置枚举类并在相对和绝对导入之间切换。 如果我将枚举类放在一个独立于 scrapy 包的自己的包中,如果我直接运行管道文件,我可以导入和使用枚举,但如果我想在 shell 上运行蜘蛛,我仍然会收到错误消息。

我目前的项目结构是:

noveldownloader:
    data
        enum_file.py
        __init__.py
    novelscraper
        novelscraper
           pipelines
           spiders
           etc
        __init__.py
        scrapy.cfg

我当前的导入是: from data.file_types import FileTypes

如果有帮助,我将代码上传到 GitHub: https : //github.com/JustACodingFox/NovelDownloader

对我有用的另一种文件夹结构,同时模块化我的代码是这样的。

./noveldownloader/noveldownloader/创建新文件夹“data”

然后你可以像这样导入它

from noveldownloader.data import enum_file

然后你可以使用这个功能

enum_file.whatever_function_to_call()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM