即使存在文件夹,ModuleNotFound

时间:2019-11-04 04:09:55

标签: python scrapy

我正在尝试构建一个Runner.py文件,以帮助我调试蜘蛛代码。应该使用Visual Studio的Debug函数来运行Runner.py文件,将我带到“ dogbreeds”蜘蛛,然后逐行运行dogbreeds蜘蛛代码。这是我拥有的Runner.py文件代码:

import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from **puppyfind**.spiders.dogbreeds import dogbreedsSpider

process = CrawlerProcess(settings = get_project_settings())
process.crawl(dogbreedsSpider)
process.start()

我遇到的问题是我的Runner.py文件给了我一个ModuleNotFound错误,并说找不到模块“ puppyfind”(上面标记)。

我通过在scrapy shell中运行“ import sys”和“ print(sys.path)”来检查我的活动目录。确认“ C:\ Users \ UserName \ projects \ puppyfind”是活动目录之一。在此文件夹中,您应该找到子文件夹“ puppyfind”,这是我收到ModuleNotFound错误的地方。

这是确切的错误:

Exception has occurred: ModuleNotFoundError
No module named 'puppyfind'
File "C:\Users\UserName\projects\puppyfind\puppyfind\runner.py", line 11, in <module>
    from puppyfind.spiders.dogbreeds import dogbreedsSpider

我在下面添加了“ print(sys.path)”的结果。这是项目结构: Folder Structure

有什么想法会导致这种情况吗?

1 个答案:

答案 0 :(得分:0)

能够通过在代码的开头添加以下内容来解决此问题:

import sys
sys.path.append("c:\\Users\\Username\\projects\\puppyfind\\")

我读过很多地方,第二行的语法应该只是路径的一部分,但这对我不起作用。将完整路径添加到append语句使一切正常。