【发布时间】:2018-11-24 20:01:43
【问题描述】:
这个错误一直困扰着我。我实际上已经开发了修复程序并记录了它,并且我成功地在以下 IP 地址上运行了服务器。重新安装 Ubuntu 操作系统后,我尝试重现我的成功......同样的错误,同样的修复将不再这样做......现在我需要外部帮助。我已经在互联网上梳理了解决方案。我尝试将 django 添加到 PYTHONPATH 并添加了它,但是当我退出 python 解释器时,附加的 django 路径消失了!
另一个可能有帮助的细节是我的网站 www.doman.com/admin 被定向到 django 管理员登录屏幕。我尝试使用用户名和密码登录,但失败了,这让我认为 django 无法正常工作。
$ sudo python3 manage.py runserver 192.165.4.3:80
我得到错误:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 14, in <module>
) from exc
ImportError: Couldn't import Django. Are you sure it's installed and
available on your PYTHONPATH environment variable? Did you forget to
activate a virtual environment?
Django 安装在我的环境中:
$ django-admin --version
2.0.6
Python 路径尝试:
$ PYTHONPATH=/home/kap/dev_env/lib/python3.6/site-packages/django python
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> sys.path
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sys' is not defined
>>> import sys
>>> sys.path
['', '/home/kap/dev_env/lib/python3.6/site-packages/django', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/kap/dev_env/lib/python3.6/site-packages']
>>> quit()
立即确认 django 已添加但它消失了:
$ python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/kap/dev_env/lib/python3.6/site-packages']
【问题讨论】:
-
在没有超级用户权限的情况下运行
manage.py runserver脚本是否有效? -
您的两个示例使用不同版本的python,您可以使用
which命令确认这一点(第一个没有安装django)。另外,请尝试在没有sudo的情况下运行第一个命令,正如 Berk 提到的那样。 -
使用
pipenv或virtualenv或docker可能更好。 -
停止使用 sudo 运行东西。
标签: python django ubuntu nginx web-deployment