当前位置:网站首页>关于运行scrapy项目时提示 ModuleNotFoundError: No module named 'pymongo‘的解决方案
关于运行scrapy项目时提示 ModuleNotFoundError: No module named 'pymongo‘的解决方案
2022-06-25 22:10:00 【落墨画雪】
1问题描述
今天使用scrapy框架写爬虫并且使用mongodb存储结果时,在powershell中运行scrapy crawl demo发现报错,报错内容是No module named 'pymongo‘,即,没有找到pymongo模块,但是笔者确确实实的下载过这个模块,那么到底是怎么回事呢?
2问题分析
首先,需要指出的是,一定是环境问题。是否是多python版本共存?笔者的电脑里同时存在着Python2.7和python3.6,当初是安装anaconda时,默认安装了前者,后者是工作学习需要,同时Python2将被淘汰,安装了Python3,导致当前笔者的电脑里同时存有两个环境,而,笔者先前将pymongo安装在了python36中,并没有安装在Python27中,导致在powershell中运行scrapy时默认使用了python2.7,所以导致了上述报错,那么到底是不是呢?
3验证假设
验证假设最好的方法就是去尝试,这里笔者先贴出powershell中的错误:
这里先尝试在默认的Python27环境中同样也下载这个pymongo模块,再运行一遍,看看是否报错,结果如下:
发现能够正确运行了,看来是这个问题,即直接在终端运行scrapy程序会默认使用conda的Python默认路径,即我这里是Python2.7。
4其他
这里使用cmd终端方法来试试,因为powershell算是cmd升级版本,笔者经过测试(先卸载Python2.7的pymongo再安装)分别测试发现,确实是这个conda的默认环境导致的问题,但是在笔者测试的过程中,还发现了一个powershell问题,即不能够像cmd切换环境:如下分别是在cmd和powershell中的切换Python环境的调试
conda activate python版本号
我这里是36,因为当初安装conda时默认的27
conda activate Python36

发现成功的切换环境,但是在powershell中就不可以
因此,这里需要注意,但是既然在cmd中可以切换环境,那么因为我最开始的scrapy是在python36中写的,出错原因是powershell只认识默认的Python27版本,而我在Python27中没有安装pymongo,在Python36中安装了这个模块,那么我在cmd中切换成Python36后再运行scrapy文件不就可以吗?
实践出真知:
确实可行
5总结
很多人因为工作学习需要,会在电脑中同时存在多个Python版本,
(1)在powershell运行scrapy文件程序时,会默认使用conda默认的环境,如果该默认环境中没有装有对应的第三方模块时,就会出现类似的找不到模块的错误,因此可以在默认的环境下也安装一样的模块,同时继续使用powershell启动;
(2)由于笔者在上面分析中发现,powershell无法切换环境,如果不非要使用powershell,可以在终端cmd中,切换Python解释器后,因为pymongo安装在Python36中了,切换后就可以直接运行。
总之,如果没有多版本共存问题,就不会出现本文问题;同时如果powershell可以切换版本也会节省很多debug时间。
边栏推荐
- STEP7主站与远程I/O组网_过路老熊_新浪博客
- 今天说说String相关知识点
- Audio basics and PCM to WAV
- 用ES5的方式实现const
- Screen recording to GIF is an easy-to-use gadget, screentogif, which is free and easy to use!
- js实现输入开始时间和结束时间,输出其中包含多少个季,并且把对应年月打印出来
- unsigned与signed之大白话
- line-height小用
- Using Google protobuf protocol environment configuration in PHP
- Download the latest V80 version of Google Chrome
猜你喜欢
随机推荐
php中使用Makefile编译protobuf协议文件
js实现输入开始时间和结束时间,输出其中包含多少个季,并且把对应年月打印出来
森林的先序和中序遍历
mysql5.7版本在配置文件my.ini[mysqld]加上skip-grant-tables后无法启动
DPVS-FullNAT模式管理篇
Analyse des cinq causes profondes de l'échec du développement de produits
解析产品开发失败的5个根本原因
WINCC与STEP7的仿真连接_过路老熊_新浪博客
Jenkins 发布PHP项目代码
树莓派开机发送热点进行远程登录
idea Kotlin版本升级
Common methods of object class
1.8 billion pixel Mars panorama Ultra HD released by NASA, very shocking
如何进行流程创新,以最经济的方式提升产品体验?
Megacli常用命令整理
寻找翻转数组的最小值[抽象二分]
如何配置SQL Server 2008管理器_过路老熊_新浪博客
The simplest screen recording to GIF gadget in history, licecap, can be tried if the requirements are not high
Stream in PHP socket communication_ Understanding of select method
PHP interprocess pass file descriptor









