在 items.py 文件上导入模块失败 - Scrapy

Failing at importing modules on items.py file - Scrapy

我是 Python 的新手,目前正在学习使用蜘蛛进行网络抓取。按照教程,我坚持使用 Python.

进行相对导入

这是我当前文件夹的结构(由scrapy startproject p1提供):

我的items.py文件:

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class Test(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    price = scrapy.Field()
    pass

在我的filetwo.py中,它包含:

import scrapy
from p1.items import Test

当我 运行 代码时,我得到“ModuleNotFoundError:没有名为 'p1' 的模块”

我也在网上看到有人遇到同样的问题,所以我试了..items import Test还是不行。它给了我错误:ImportError: attempted relative import with no known parent package

谁能给我一盏灯?

提前致谢!

我相信我的评论会对您有所帮助。但这里有一个例子

很遗憾,您接受的答案是错误的。你不应该搞乱 sys.path。你应该改为:

$ cd P1
$ python -m p1.spiders.filetwo # note no .py

您显然是 运行 直接来自蜘蛛程序包内部的 filetwo.py 脚本 - 这是 python 中导致所有这些错误的反模式。另一方面,弄乱 sys.path 可能会导致一系列细微的错误。