当我使用
import psycopg2
在 Scrapy pipeline.py 或 spider.py 中,出现以下错误
ModuleNotFoundError: No module named 'psycopg2'
我知道该错误无效,因为我正在使用包含psycopg2的相同venv和PostgreSQL运行Django服务器。而且我还可以在测试文件和查询中连接到db。另外,我可以在Scrapy shell中运行 import psycopg2 ,没有问题。所以让我感到困惑的是,我可能会缺少一些东西, 我很感谢有人可以帮助我,
答案 0 :(得分:0)
因为花了我几个小时,这才是我发现的。
我在Windows和Linux Ubuntu中都进行了测试,两者都有相同的错误。
显然这是发生了什么
在Windows中,我在Core上安装了Scrapy,在Ubuntu中,显然Scrapy已被包装。
我在venv中运行了我的履带,看来实际上我的Scrapy没有正确安装在venve中。但是,由于Scrapy已经在PATH中,因此它是从Core(不是psycopg2)运行的。因此,上述错误实际上来自venv。
首先在venv中安装Scrapy看起来很简单。我通过尝试Scrapy shell进行了检查,它正在运行,但是实际上它又是从内核运行的。确保venv的 pip Frozen 列表中有Scrapy。这是link,说明了如何解决安装中的某些问题。
答案 1 :(得分:0)
您需要在virtualenv中安装psycopg2,发出下一条命令
pip安装psycopg2