자동 생성 manage.py에서 SyntaxError를 해결하는 방법은 무엇입니까?


110

Django 튜토리얼 https://docs.djangoproject.com/es/1.10/intro/tutorial01/을 따르고 있습니다.

나는 "mysite"더미 프로젝트 (내 첫 번째 프로젝트)를 만들고 변경하지 않고 테스트하려고합니다.

django-admin startproject mysite
cd mysite
python manage.py runserver

File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax

시스템 자체에서 생성 한 파일에서 SyntaxError가 발생합니다. 그리고 같은 문제를 겪은 다른 사람을 찾을 수없는 것 같습니다.

사용할 수있는 경우를 대비하여 설정 데이터를 추가하겠습니다.

$ vpython --version
Python 2.7.12
$ pip --version
pip 9.0.1 from /home/frank/.local/lib/python2.7/site-packages (python 2.7)
$ python -m django --version
1.10.6

누군가 나를 도울 수 있습니까?

업데이트 : 자동 생성 manage.py의 내용 추가

cat manage.py 
#!/usr/bin/env python3
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise 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?"
        ) from exc
    execute_from_command_line(sys.argv)

구문 오류가있는 전체 파일 (또는 그 이상)의 내용을 게시하십시오.
Scovetta 2017 년

10
이 파일은 Python 3에서 사용하기위한 것이며 (첫 번째 줄입니다!) 2.7에서는 작동하지 않습니다.
jasonharper

튜토리얼 웹은 코드의 일부가 2.7에서 작동하지 않을 때 주석에 필요한 수정 사항을 추가한다고 말합니다. 수정 사항이 나열되지 않았으므로 작동 할 것이라고 생각했습니다 ...
프랭크

답변:


106

django를 연결하는 파이썬 버전을 확인하십시오 (사용중인 경우 가상 환경을 활성화하십시오).

그냥 사용하여 장고를 설치할 때

pip install django 

그런 다음 실행해야

python manage.py startapp <yourApp name>

다음을 사용한 경우 :

pip3 install django

그런 다음 실행해야

python3 manage.py startapp <yourapp name>

보내다:
여기에 이미지 설명 입력


11
같은 문제가 python manage.py migrate있었고 python3 manage.py migrate오류 를 수정 하기 위해 변경했습니다 .
landocalrissian

9
내 가상 환경을 활성화하는 것을 잊었습니다.
Bobort

47

으로 시도 할 수 있습니다 python3 manage.py runserver. 그것은 나를 위해 작동합니다.


27

가상 환경을 활성화해야합니다. 터미널-> 소스 env / bin / activate에서 이제 터미널에 ----> (env)가 표시됩니다!

이제 작동합니다-> runserver.

exc 부분을 삭제할 필요가 없습니다!


13

나는 똑같은 경험을했지만 이것은 아래와 같이 특정 python 3.6으로 실행하여 해결되었습니다.

python3.6 manage.py runserver



9

가상 환경을 만들고이 가상 환경 내에서 Django 코드를 실행하는 것이 가장 좋습니다. 이렇게하면 기존 환경을 변경하지 않는 데 도움이됩니다. 다음은 가상 환경과 Django를 시작하는 기본 단계입니다.

  1. 새 디렉토리를 만들고 CD로 이동합니다.

    mkdir test , cd test

  2. 가상 환경을 설치하고 만듭니다.

    python3 -m pip install virtualenv virtualenv venv -p python3

  3. 가상 환경 활성화 : source venv/bin/activate

  4. Django를 설치합니다. pip install django

  5. 새 프로젝트 시작 : django-admin startproject myproject

  6. 프로젝트로 이동하고 프로젝트를 실행합니다.

    cd myproject , python manage.py runserver

  7. 여기에서 프로젝트를 볼 수 있습니다. http://127.0.0.1:8000/


잘 했어! 이 "튜토리얼"에 의해 작동 방식이 명확 해졌습니다. 에 django3activate에 위치한 .\venv\Script폴더
마이클 - MAMMUT

8

정확한 지침 (단지 "python"대신 python2 또는 python3 사용)으로 테스트 한 후 튜토리얼이 무엇을 말하든 python3에서만 작동하도록 구성했습니다.


3

Python 버전 3을 실행하려면 python3대신 다음 을 사용해야 합니다.python .

따라서 최종 명령은 다음과 같습니다.

python3 manage.py runserver

3

해결책은 간단합니다. manage.py의 예외는 Python으로 명령을 실행할 때 Django가 정확한 Python 버전을 예측할 수 없기 때문입니다. 3.6, 3.5, 3.8이 있고이 버전 중 하나만 Django를 설치하여 이것은 사용 :

./manage.py `enter code here`<command>

또는 정확한 파이썬 버전 (xx)을 사용하면 다음을 의미합니다.

pythonx.x manage.py <command>

그렇지 않으면 모든 pip django 모듈을 python 버전과 쉽게 관련시키기 때문에 가상 환경을 사용하는 것이 편리 할 수 ​​있습니다.

  • pyenv 또는 virtualenv로 환경 생성
  • 활성화 (예 : virtualenv => virtualenv env)
  • python manage.py 명령을 사용하여 실행

2

django를 설치 한 가상 환경을 활성화해야합니다. 그런 다음이 명령을 실행하십시오 -python manage.py runserver


2

나는 같은 상황을 해결했다.

설치된 버전

파이썬 3.6, 장고 2.1

상태

Windows 10에 Node.js를 설치했습니다. 이후 python manage.py runserver오류가 발생했습니다.

오류

File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax

이유

내 파이썬 경로가 python-3.6에서 python-2.7로 변경되었습니다. (내 PC에서는 3.6이 맞습니다.)

해결책

파이썬 경로를 수정하십시오.


2

나는 똑같은 오류가 있었지만 나중에 django 및 기타 필수 패키지가 설치된 conda 환경을 활성화하는 것을 잊었다는 것을 알게되었습니다.

솔루션 : django가 설치된 conda 또는 가상 환경을 만들고 다음 명령을 사용하기 전에 활성화하십시오. $ python manage.py migrate


1

django-admin은 아마도 잘못된 파일 일 수 있습니다. 동일한 설정 흐름에서 다른 컴퓨터에서 발견하지 못한 동일한 문제를 만났습니다.

두 프로젝트를 비교 한 후 manage.py와 settings.py에서 몇 가지 차이점을 발견 한 후 2.0 django 프로젝트를 만들었지 만 python2로 실행했습니다.

which django-adminiterm에서 실행

/Library/Frameworks/Python.framework/Versions/3.6/bin/django-admin

python3에 django-admin이 있는데 이유를 모르는 것 같아서 올바른 django-amin을 얻으려고했습니다.

pip show django

그때 나는 얻었다

Name: Django
Version: 1.11a1
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Home-page: https://www.djangoproject.com/
Author: Django Software Foundation
Author-email: foundation@djangoproject.com
License: BSD
Location: /Library/Python/2.7/site-packages
Requires: pytz

에서 /Library/Python/2.7/site-packages, 나는 장고 - 관리자 발견

/Library/Python/2.7/site-packages/django/bin/django-admin.py

그래서 다시 프로젝트를 만들었습니다.

/Library/Python/2.7/site-packages/django/bin/django-admin.py startproject myproject

그런 다음 실행

cd myproject
python manage.py runserver

성공했습니다 🎉


1

우리는 프로젝트 외부가 아닌 프로젝트 내부에 가상 환경을 만들어야합니다. 그러면 해결 될 것입니다 ..


1

컴퓨터에 Python 버전이 두 개 이상있는 것 같습니다. 하나를 제거하고 응용 프로그램을 개발하는 데 사용한 유일한 버전은 그대로 둡니다.

필요한 경우 버전을 업그레이드 할 수 있지만 컴퓨터에 Python 버전이 하나만 있어야합니다.

이게 도움이 되길 바란다.


1

가상 환경을 활성화하는 것을 잊었 기 때문에 똑같은 예외가 발생했습니다.


1

가능한 이유는 다음과 같습니다.

1. The virtual environment is not enabled
2. The virtual environment is enabled but the python version is different

가상 환경을 만들려면

$ virtualenv --python=python3 venv

가상 환경을 활성화하려면

$ source venv/bin/activate

1

나는 또한 같은 오류가 발생했습니다. 여기에 이미지 설명 입력

그런 다음 환경 폴더가있는 폴더로 돌아가서 가상 환경을 활성화하는 것을 잊었으므로이 오류가 발생했습니다. 여기에 이미지 설명 입력

해당 폴더로 이동하여 가상 환경을 활성화하십시오.

$ source env/bin/activate

1

: 또한, 튜토리얼은 가상 환경을 사용하는 것이 좋습니다 (장고 문서를 참조 https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release을 당신은이 작업을 수행 할 수 있습니다 "). pipenv --three일단. 를 pipenv install django사용하여 django를 설치 하고를 사용하여 가상 환경을 활성화 pipenv shell하면 python은 실행할 때 python3을 참조합니다.python manage.py runserver .

Pipenv 문서 : https://pipenv.kennethreitz.org/


0

내가 궁금한 것은 django가 컨테이너에 설치되어 있지만 명령을 실행하는 호스트 시스템에 없을 수도 있다는 것입니다. 그러면 명령이 어떻게 실행 될까요? 그래서 위의 솔루션이 나를 위해 일하지 않았기 때문에.

실행중인 컨테이너를 발견하고 실행중인 컨테이너에 docker exec -it <container> bash 들어가서 도커 컨테이너 내부에서 명령을 실행했습니다. 볼륨 컨테이너가 있으므로 수행 된 변경 사항도 로컬에 반영됩니다. 실행되는 명령은 실행중인 컨테이너 내에서 실행할 수 있습니다.


0

미래의 독자들에게는 나도 같은 문제가있었습니다. 웹 사이트에서 직접 Python을 설치하고 Anaconda의 다른 버전으로 인해이 문제가 발생했습니다. Python2.7을 제거하고 아나콘다 만 배포판으로 유지해야했습니다.


0

django의 가상 환경에 들어갔습니까? python -m venv myvenv아직 설치하지 않은 경우 실행하십시오 .


0

그냥 해:

pipenv shell

그런 다음 반복하십시오.

python manage.py runserver

from exc위에서 제안한대로 삭제하지 마십시오 .

건배!


0

나는 같은 문제가 있었고 그것을 해결할 수 있었다. 설치된 Django 버전과 관련이 있으며 일부는 Python 2.7에서 지원되지 않습니다. pip와 함께 Django를 설치했다면 python 2.7에서 지원되지 않는 최신 버전을 설치하고 있음을 의미합니다 . 여기에서 자세한 정보를 얻을 수 있습니다 . python 3을 제안하거나 설치하는 동안 Django 버전을 지정합니다 (python 2.7의 경우 1.11).


0

이 문제를 해결하여 여러 버전의 Python을 제거했습니다. Django 공식 문서 확인Python 호환성에 대해서는 를 .

" Python 호환성

Django 2.1은 Python 3.5, 3.6 및 3.7을 지원합니다. Django 2.0은 Python 3.4를 지원하는 마지막 버전입니다. "

manage.py 파일

#!/usr/bin/env python
import os
import sys

if __name__ == '__main__':
   os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'work.settings')
   try:
       from django.core.management import execute_from_command_line
   except ImportError as exc:
      raise 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?"
      ) from exc
    execute_from_command_line(sys.argv)

이 코드의 마지막 두 번째 줄에서 "from exc"를 제거하면 여러 버전의 Python으로 인해 또 다른 오류가 발생합니다.


0

다음 명령으로 환경 활성화

  source  pathetoYourEnv/bin/activate

그런 다음 명령을 실행하십시오.

python manage.py runserver

0

가상 환경을 시작해야합니다. .

어떻게하나요?

먼저 터미널 cd를 사용하여 manage.py가 포함 된 디렉토리에

그런 다음 입력 $source <myvenv>/bin/activate 각괄호없이 가상 환경 이름으로 교체 합니다.

또 다른 문제는 루트 디렉토리와 venv가 일치하지 않을 수 있습니다. 구조는 다음과 같아야합니다.

|-website
     ..facebook
     ..manage.py
     ..myvenv
     ..some other files

이것이 가상 환경이며 manage.py는 동일한 폴더에 있어야합니다. 이에 대한 해결책은 프로젝트를 다시 시작하는 것입니다. 이 오류가 발생하면 아직 코드를 작성하지 않았으므로 다시 시작하십시오.


0

다음을 사용하여 가상 환경을 활성화 할 때도 내 문제를 해결했습니다.

source bin/activate

0

이 문제 (Mac)가 발생했으며 아래 페이지의 지침에 따라 가상 환경을 설치하고 활성화했습니다.

https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/

$ cd [최상위 django-project-dir]

$ python3 -m pip install --user virtualenv

$ python3 -m venv env

$ 소스 환경 / 빈 / 활성화

가상 환경을 설치하고 활성화 한 후 확인했습니다.

$ 어떤 파이썬

그런 다음 가상 환경에 django를 설치했습니다.

$ pip 설치 장고

그런 다음 내 앱을 실행할 수 있습니다.

$ python3 manage.py runserver

튜토리얼의 다음 부분에 도달했을 때

$ python manage.py startapp 설문 조사

다른 오류가 발생했습니다.

     File "manage.py", line 16

   ) from exc
            ^

   SyntaxError: invalid syntax

나는 지웠다

from exc

그런 다음 polls 디렉토리를 생성했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.