虚拟环境中执行scrapy crawl命令提示文件不存在的问题咨询
解决方案
问题根源
从pip3 show scrapy的输出能明确看到:Scrapy装在了用户全局的Python目录(/home/szendrei/.local/lib/python3.8/site-packages),而非你当前激活的virtualenvwrapper虚拟环境里。虽然scrapy startproject能跑,但那调用的是全局环境的Scrapy,虚拟环境内根本没有对应的可执行文件,所以执行scrapy crawl会报错找不到路径。
修复步骤
- 确认虚拟环境处于激活状态
看终端提示符开头有没有虚拟环境名称(比如(scrapy-projects) $),没激活的话先切过去:workon scrapy-projects - 彻底清理所有Scrapy残留
先在虚拟环境内卸载(即使显示没安装也执行一遍):
再卸载用户全局的Scrapy:pip uninstall -y scrapypip3 uninstall -y scrapy --user - 在虚拟环境内重新安装Scrapy
确保虚拟环境激活状态下,执行:pip install scrapy - 验证安装有效性
执行which scrapy,正常应该输出虚拟环境内的路径,比如/home/szendrei/.virtualenvs/scrapy-projects/bin/scrapy,之后再跑scrapy crawl quotes就没问题了。
兜底方案(如果上面步骤无效)
- 直接重建虚拟环境:
deactivate rmvirtualenv scrapy-projects mkvirtualenv scrapy-projects -p python3.8 pip install scrapy
内容的提问来源于stack exchange,提问作者Dóra Szendrei
相关产品推荐
相关产品推荐

