无法在virtualenv中导入django,但在停用时可以正常工作

时间:2017-02-23 01:41:55

标签: python django ubuntu virtualenv pythonpath

我正在尝试使用Ubuntu 16.04在Amazon AWS上部署我的Django项目。我正在运行python版本2.7.12和Django 1.10.5。我创建了名为venv的virtualenv然后激活它。 当我尝试运行python manage.py runserver时出现此错误。

  

追踪(最近一次通话):     文件" manage.py",第17行,in       "无法导入Django。你确定它已经安装了吗?"   ImportError:无法导入Django。您确定它已在PYTHONPATH环境变量中安装并可用吗?您是否忘记激活虚拟环境?

然后我意识到Django可能不在我的python路径中。所以我添加了

  

export PYTHONPATH =" /usr/local/lib/python2.7/dist-packages/django"

进入我的venv / bin / activate脚本。现在激活了virtualenv,我可以进入python并输入

  

import sys
  sys.path中
  ['',' /usr/local/lib/python2.7/dist-packages/django' ;,' / home / ubuntu / TravelBuddy / venv / lib / python2 .7',' /home/ubuntu/TravelBuddy/venv/lib/python2.7/plat-x86_64-linux-gnu' ;,' / home / ubuntu / TravelBuddy / venv / lib /python2.7/lib-tk' ;,' /home/ubuntu/TravelBuddy/venv/lib/python2.7/lib-old' ;,' / home / ubuntu / TravelBuddy / venv /lib/python2.7/lib-dynload',' /usr/lib/python2.7' ;,' /usr/lib/python2.7/plat-x86_64-linux-gnu& #39;,' /usr/lib/python2.7/lib-tk' ;,' /home/ubuntu/TravelBuddy/venv/local/lib/python2.7/site-packages' ;,' /home/ubuntu/TravelBuddy/venv/lib/python2.7/site-packages']

正如你所看到的,现在django确实在我的python路径中。我认为这将解决问题,但它并没有:它仍然说无法导入Django。现在我很困惑,因为当我停用我的virtualenv并导入Django它确实有效。

这是在我停用virtualenv并执行sys.path

时打印出来的内容
  

['',' /usr/local/lib/python2.7/dist-packages/django' ;,' /usr/lib/python2.7&# 39;,' /usr/lib/python2.7/plat-x86_64-linux-gnu' ;,' /usr/lib/python2.7/lib-tk',&#39 ; /usr/lib/python2.7/lib-old' ;,' /usr/lib/python2.7/lib-dynload' ;,' / usr / local / lib / python2。 7 / dist-packages',' /usr/lib/python2.7/dist-packages']

2 个答案:

答案 0 :(得分:2)

好的,我发现了问题所在。事实证明,当我开始使用virtualenv时,我使用了sudo命令但是当我pip安装我的软件包时,我没有使用sudo命令导致许可问题或安装软件包时的某种类型。所以它让django没有出现在路上。启动虚拟环境时,永远不要使用sudo命令...

答案 1 :(得分:0)

1-安装python3  brew install python3 2-安装django   pip3 install django