virtualenv中ImportError: No module named django

时间:2023-11-22 09:58:56

问题现象:在代码py文件中,import django 报错,但是在python shell中直接执行这个语句没错,

网上搜索了下,自己测试了下,确定原因是由于使用了python中的virtualenv环境,环境变量中路径的问题。稍作记录,方便后来者。

使用的是python2.7.5和django

解决方案如下:

写了个最简单的python脚本

django_test.py,如下,注释了第4行和第8行时报错了提示 ImportError:  no module named django 

但是通过python直接进入python shell 之后 import django则正常工作

>>> import django
>>> django
<module 'django' from '~/.virtualenvs/env27/lib/python2.7/site-packages/django/__init__.pyc'>

导入了sys模块之后,打印了sys.path发现没有包含上面的路径,把4和8 的注释删掉(即把这个路径假如sys.path)然后重新执行通过,问题解决。

PS:注意添加到site-packages目录层即可。

  1 #!/usr/bin/python
  2
  3 import sys, os
  4 #django_path='~/.virtualenvs/env27/lib/python2.7/site-packages'
  5 print sys.path
  6 print "-------------------------------------------"
  7
  8 #sys.path.append(django_path)
  9 print sys.path
 10
 11 import django