在 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 可能会导致一系列细微的错误。
我是 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 可能会导致一系列细微的错误。