问题描述
django项目运行使用manage.py运行命令启动时报错,但是在pycharm中直接运行manage.py文件来启动项目又可以正常启动。
异常信息:
django.core.exceptions.ImproperlyConfigured: Cannot import ‘orm_db’. Check that ‘db.orm_db.apps.ORMConfig.name’ is correct.
由于项目的目录结构与django默认的项目目录不一样,自己写的包不能被正确导入,可能是路径问题导致了包没有被正确的导入。
解决办法
使用.pth文件
原理:Python在遍历已知的库文件目录过程中,如果见到一个.pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件指明的库也就可以被 Python 运行环境找到了。
python默认查找包的地方有几个:
- python安装目录下的site-packages
- 环境变量PYTHONPATH的目录
- 当前目录
在虚拟环境找那个找到python的安装目录,添加一个.pth文件,将导入失败的包的路径添加到.pth文件中,每行一个,路径到包的上一级。
路径:
/home/chenfc/.virtualenvs/www/lib/python3.6/site-packages
et.pth中加入的路径:
/home/chenfc/www/et_project/db /home/chenfc/www/et_project/apps /home/chenfc/www
可以查看包的路径是否被添加到path中:
import sys sys.path