Ошибка при запуске Django при указании порта
Недавно я привык делать следующее в своих проектах django, чтобы я мог проверить совместимость баузеров на разных ОС (то есть не linux):
$ sudo ./manage.py runserver 0.0.0.0:80
Это позволяет мне получить доступ к проекту через любую машину в сети.
Однако я просто установил новую машину, и эта команда выдает следующую ошибку:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Я понимаю, что у django возникают проблемы с поиском модуля, я не понимаю, что это простой старый:
$ sudo ./manage.py runserver
Хорошо работает. Все, что я здесь делаю, меняет порт, конечно? И, конечно же, в прошлом это прекрасно работало.
NB
1. Я использую Django 1.4
2. Я попытался в virtualenv и в системе, и я получаю тот же результат.
3. У меня нет установленной системы django (только в virtualenvs)
Любая помощь приветствуется.
Ответы
Ответ 1
Я предполагаю, что команда sudo будет запускать процесс в контексте суперпользователя, а в контексте суперпользователя отсутствуют настройки virtualenv.
Вы можете попытаться вызвать двоичный код python в вашем virtualenv явно, например:
sudo $(which python) manage.py runserver 0.0.0.0:80
Создайте сценарий оболочки, чтобы установить virtualenv и вызвать manage.py runserver
, затем sudo вместо этого скрипта.
#!/bin/bash
source /home/darwin/.virtualenvs/foo/bin/activate
cd /path/to/project/foo
python manage.py runserver 0.0.0.0:80
Замените /home/darwin/.virtualenvs/foo
корень вашего фактического virtualenv и /path/to/project/foo
с корнем вашего проекта.
Ответ 2
Здесь другое решение, вместо создания сценария оболочки, просто укажите, какой исполняемый файл python вы хотите использовать в команде:
Предполагая, что ваш виртуальный контейнер называется .virtualenvs
и там env называется myproject
в нем, это команда, которую вы должны написать:
$ sudo ~/.virtualenvs/myproject/bin/python manage.py runserver 0.0.0.0:80
Ответ 3
Бег
manage.py runningerver 0.0.0.0:8000
то есть. запустите сервер в другом порту, а не по умолчанию порт 80
при доступе к URL-адресу используйте номер порта