AWS Ubuntu下Django项目集成dlib失败,求正确导入步骤
解决Django项目中无法导入dlib的问题
你遇到的问题其实是两个关键错误导致的:dlib安装到了错误的Python版本环境,以及错误地将普通Python库加到了Django的INSTALLED_APPS中。下面一步步帮你解决:
一、问题根源分析
- 从你的安装输出能明显看到,dlib被安装到了系统的Python 2.7环境:
但你的Django项目使用的是Python 3.5的虚拟环境(路径Installed /usr/local/lib/python2.7/dist-packages/dlib-19.8.99-py2.7-linux-x86_64.egg/home/deploy/somedotcom/somedotcomenv/lib/python3.5/site-packages),两个环境完全独立,所以Django根本找不到dlib。 - 另外,dlib是普通的Python机器学习库,不是Django应用,完全不需要加到
INSTALLED_APPS里——这也是你之前报错的直接原因,移除它是正确的,但核心问题还是安装路径不匹配。
二、正确的解决步骤
1. 确认并激活Django项目的虚拟环境
首先确保你在项目对应的Python 3.5虚拟环境中操作:
# 激活你的虚拟环境 source /home/deploy/somedotcom/somedotcomenv/bin/activate # 验证当前Python版本,应该显示3.5.x python --version # 查看当前Python的安装路径,应该指向虚拟环境目录 which python
2. 安装编译dlib所需的系统依赖
Ubuntu上编译dlib需要一些基础工具和依赖包,先执行安装:
sudo apt-get update sudo apt-get install build-essential cmake libboost-all-dev python3.5-dev
3. 在虚拟环境中重新编译安装dlib
现在在激活的虚拟环境中,重新编译安装dlib(此时使用的是虚拟环境的Python 3.5,会把dlib装到虚拟环境的site-packages目录):
# 进入你之前获取的dlib源码目录 cd /path/to/your/dlib-source # 执行安装命令 python setup.py install
4. 测试导入并在Django中使用
- 先在虚拟环境的Python交互模式中验证:
import dlib # 如果没有报错,说明安装成功 - 在Django项目中,你只需要在需要使用dlib的文件(比如视图、工具函数文件)中直接导入即可,不需要任何额外的Django配置:
# 比如在views.py中 import dlib def face_detect_view(request): # 在这里正常使用dlib的功能 detector = dlib.get_frontal_face_detector() # ... 后续业务逻辑
三、注意事项
- 永远不要把非Django应用的Python库加到
INSTALLED_APPS中,这个列表仅用于注册包含models、views等Django组件的应用包。 - 安装Python库时,一定要确认当前激活的是项目对应的虚拟环境,避免装到系统Python或其他无关环境中。
内容的提问来源于stack exchange,提问作者Axil
相关产品推荐
相关产品推荐

