解决Python模块导入出现ModuleNotFoundError: No module named ‘***’的问题

Python的模块非常多,在安装这些模块的时候,由于安装方法的不同(pip、easyinstall),在python加载这些包时,出现ModuleNotFoundError: No module named ‘***’的问题。
那么如何解决这些问题呢?
首先,这个错误是因为Python环境不知道你的模块在哪儿,或者说在Python的默认加载位置没有你的模块。明白这个道理,这个错误就很好解决。
我们拿使用easy_install安装Django模块后出现ModuleNotFoundError: No module named ‘Django’为例,来说明如何处理该类错误。
1、首先确定模块安装的位置

pip show django
Name: Django
Version: 3.2.8
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Home-page: https://www.djangoproject.com/
Author: Django Software Foundation
Author-email: [email protected]
License: BSD-3-Clause
Location: /usr/local/lib/python3.6/site-packages
Requires: sqlparse, asgiref, pytz

从Location可以看出包的安装位置是 /usr/local/lib/python3.6/site-packages

2、确定Python默认读取模块的位置
进入Python运行环境

import sys
print(sys.path)
[’’, ‘/usr/lib64/python36.zip’, ‘/usr/lib64/python3.6’, ‘/usr/lib64/python3.6/lib-dynload’, ‘/usr/lib64/python3.6/site-packages’, ‘/usr/lib/python3.6/site-packages’]

我们可以看到默认的位置中没有Django的安装目录 /usr/local/lib/python3.6/site-packages

3、将模块的安装目录加入Python的运行环境

PYTHONPATH="/usr/local/lib/python3.6/site-packages"
export PYTHONPATH

再次进入Python环境

import sys
print(sys.path)
[’’, ‘/usr/lib64/python36.zip’, ‘/usr/lib64/python3.6’, ‘/usr/lib64/python3.6/lib-dynload’, ‘/usr/lib64/python3.6/site-packages’, ‘/usr/lib/python3.6/site-packages’,’/usr/local/lib/python3.6/site-packages‘]

现在Python的运行环境就有了django的安装目录,运行就不会再报错。
当然我们也可以在安装django 时,将其安装到Python的运行环境所在的目录。

你可能感兴趣的:(python,django,后端)