Anaconda虚拟环境下已装djangorestframework仍报ModuleNotFoundError求助
问题根源与修复方案
问题根源
你遇到的这个ModuleNotFoundError核心原因是Anaconda虚拟环境和全局Python环境的依赖包不统一:
- 你执行
pip3 install djangorestframework时,没有激活Anaconda虚拟环境,导致包被安装到了全局Python的/usr/local/lib/python3.6/site-packages目录下; - 而运行
python manage.py runserver时,实际调用的是Anaconda虚拟环境里的Python(路径为/Users/xxx/anaconda/envs/env/lib/python3.6/),这个环境里并没有安装rest_framework,所以才会触发找不到模块的错误。
修复步骤
按照以下步骤操作就能解决问题:
第一步:激活你的Anaconda虚拟环境
先看终端提示符是否有(env)前缀(你的虚拟环境名称),如果没有,执行激活命令:# macOS/Linux系统 source /Users/xxx/anaconda/envs/env/bin/activate # Windows系统 # conda activate env激活成功后,终端会显示
(env)开头的提示符。第二步:在虚拟环境内重新安装djangorestframework
激活环境后直接用pip安装(此时pip已经指向虚拟环境内的Python包管理工具,不需要加3):pip install djangorestframework第三步:验证安装结果
在激活的虚拟环境里启动Python交互模式,输入以下命令测试:import rest_framework如果没有报错,说明
rest_framework已经成功安装到虚拟环境中了。第四步:重新运行Django服务
最后执行:python manage.py runserver这次应该就能正常启动服务了。
小提示
以后操作虚拟环境中的项目时,一定要先激活对应的虚拟环境,再执行安装依赖、运行代码等操作,这样才能保证依赖包都安装在当前项目的环境中,避免出现环境不匹配的问题。
内容的提问来源于stack exchange,提问作者user7676799
相关产品推荐
相关产品推荐

