튜토리얼 - django란




포트 지정시 Django runserver 오류 (2)

sudo 명령은 수퍼 유저 컨텍스트에서 프로세스를 실행하고 수퍼 유저 컨텍스트는 virtualenv 설정이 부족하다고 생각합니다.

virtualenv에서 python 바이너리를 명시 적으로 호출 할 수 있습니다 (예 :

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/path/to/project/foo 의 루트로 바꿉니다.

최근에 장고 프로젝트에서 다음과 같은 일을하는 것에 익숙해 져서 다양한 OS (예 : 비 Linux)에서 bowser 호환성을 테스트 할 수 있습니다.

$ 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

장고 모듈을 찾는 데 문제가있는 것을 이해, 내가 이해하지 못하는 그 평범한 오래된 있습니다 :

$ sudo ./manage.py runserver

잘 돌아갑니다. 내가 여기서하고있는 건 포트를 바꾸는 것 뿐이야. 그리고 물론, 그것은 과거에 잘 작동했습니다.

주의
1. 장고 1.4를 사용하고 있습니다.
2. 나는 virtualenv 내에서 그리고 시스템에서 시도했고 나는 같은 결과를 얻었다.
3. 나는 장고를 시스템 전체에 설치하지 않았다. (그냥 virtualenvs에)

어떤 도움이라도 대단히 감사 할 것입니다.


다음은 또 다른 해결책입니다. 쉘 스크립트를 만드는 대신 명령에서 사용할 python 실행 파일을 지정하십시오.

당신의 virtualenv 컨테이너가 .virtualenvs 라고 불리고 myproject 라는 env가 있다고 가정하면, 다음과 같이 작성해야합니다 :

$ sudo ~/.virtualenvs/myproject/bin/python manage.py runserver 0.0.0.0:80






django