问题现象:在代码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