繁体   English   中英

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

[英]couldn't import django in virtualenv but works when deactivated

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

追溯(最近一次调用):“无法导入Django。”中的文件“ manage.py”,第17行,您确定已安装并且“导入错误:无法导入Django。 您确定已在PYTHONPATH环境变量中安装并使用该变量吗? 您是否忘记了激活虚拟环境?

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

导出PYTHONPATH =“ / usr / local / lib / python2.7 / dist-packages / django”

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

导入系统
系统路径
['','/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','/ 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','/usr/lib/python2.7/plat-x86_64-linux- gnu','/ usr / lib / python2.7 / lib-tk','/ 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”]

好的,我发现了问题所在。 事实证明,当我启动我的virtualenv时,我使用了sudo命令,但是当我点子安装我的软件包时,我没有使用sudo命令,这会在安装软件包时导致权限问题或某种原因。 因此,django没有出现在路径上。 启动虚拟环境时,请勿使用sudo命令...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM