自動生成されたmanage.pyでSyntaxErrorを解決する方法は?


109

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 2017年

チュートリアルWebによると、コードの一部が2.7で機能しない場合、コメントに必要な変更が追加されます。これには変更がリストされていなかったので、うまくいくと思いました...
Frank

回答:


106

あなたがdjangoを接続するPythonバージョンを確認してください (使用している場合は、必ず仮想環境をアクティブ化してください)。

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 2018

9
仮想環境をアクティブにするのを忘れました。
Bobort


27

仮想環境をアクティブ化する必要があります。ターミナル->ソースenv / bin / activateに---->(env)がターミナルに表示されます!

今それは動作します-> runserver。

excパーツを削除する必要はありません!


13

私は同じことを経験していましたが、これは以下の特定のpython 3.6で実行することによって解決されました:

python3.6 manage.py runserver



9

仮想環境を作成し、この仮想環境内でDjangoコードを実行することをお勧めします。これは、既存の環境を変更しないために役立ちます。仮想環境とDjangoを開始するための基本的な手順は次のとおりです。

  1. 新しいディレクトリを作成し、そこにcdします。

    mkdir testcd 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して、プロジェクトを実行します。

    cd myprojectpython 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があり、解決のためにこのバージョンのpipモジュールの1つだけがDjangoのインストールに使用された可能性があります。これはどちらかを使用します:

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

または正確なpythonバージョン(xx)を使用すると、次のようになります。

pythonx.x manage.py <command>

それ以外の場合は、pip djangoモジュールをpythonバージョンに簡単に関連付けることができるため、仮想環境の使用が役立ちます。

  • pyenvまたはvirtualenvで環境を作成する
  • アクティブ化(例:virtualenv => virtualenv env)
  • python manage.pyコマンドを使用して実行

2

djangoをインストールした仮想環境をアクティブにする必要があります。次に、このコマンドを実行します-python manage.py runserver


2

私は同じ状況を解決しました。

インストール済みバージョン

python 3.6、django 2.1

状況

Node.jsをWindows 10にインストールしpython manage.py runserverました。エラーが発生した後。

エラー

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

理由

私のpythonパスがpython-3.6からpython-2.7に変更されました。(私のPCでは3.6が正しいです。)

解決

Pythonパスを修正します。


2

まったく同じエラーが発生しましたが、後で、djangoとその他の必要なパッケージがインストールされているconda環境をアクティブ化するのを忘れていることがわかりました。

解決策:djangoがインストールされたcondaまたは仮想環境を作成し、コマンドを使用する前にそれをアクティブにします。 $ python manage.py migrate


1

django-adminが間違ったファイルである可能性があります。別のコンピューターで同じセットアップフローを見つけなかった同じ問題に遭遇しました。

2つのプロジェクトを比較した後、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、私はdjango-adminを見つけました

/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がインストールされているようです。1つを試して削除し、アプリケーションの開発に使用したバージョンのみを残してください。

必要に応じて、バージョンをアップグレードできますが、コンピューターに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

また、チュートリアルでは仮想環境の使用を推奨しています(Djangoのドキュメントを参照してください:https : //docs.djangoproject.com/en/2.0/topics/install/#installing-official-release ")。これはpipenv --three。でdjangoをインストールpipenv install djangopipenv shell、で仮想環境をアクティブ化した場合、Pythonは実行時にpython3を参照しますpython manage.py runserverます。

Pipenvのドキュメント:https ://pipenv.kennethreitz.org/


0

djangoはコンテナーにインストールされていますが、コマンドを実行しているホストマシンにない可能性があります。次に、コマンドはどのように実行されますか。したがって、上記の解決策は私にとってうまくいきませんでした。

私は実行中のコンテナーを見つけ、docker exec -it <container> bash それを使用して実行中のコンテナーに入り、次にdockerコンテナー内でコマンドを実行しました。ボリュームコンテナーがあるので、行われた変更はローカルにも反映されます。これまでに実行するコマンドは、実行中のコンテナ内で実行できます


0

将来の読者のために、私も同じ問題を抱えていました。ウェブサイトから直接Pythonをインストールし、Anacondaから別のバージョンをインストールすると、この問題が発生することがわかりました。私はPython2.7をアンインストールし、anacondaを唯一のディストリビューションとして保持する必要がありました。


0

djangoの仮想環境に入りましたか?python -m venv myvenvまだインストールしていない場合に実行します。



0

同じ問題があり、解決できました。これはインストールしたDjangoのバージョンに関連しており、Python 2.7でサポートされていないバージョンもあります。Djangoをpipでインストールした場合は、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)

このコードの最後の2行目から「excから」を削除すると、Pythonの複数のバージョンが原因で別のエラーが生成されます。


0

次のコマンドで環境をアクティブ化

  source  pathetoYourEnv/bin/activate

次にコマンドを実行します

python manage.py runserver

0

仮想環境を開始する必要があります

どうやってするの?

最初に、manage.pyを含むディレクトリにターミナルcdで

次に$source <myvenv>/bin/activate 、山括弧を付けずに、仮想環境名でreplaceと入力します。

別の問題として、ルートディレクトリとvenvが一致しないことがあります。構造は次のようになります。

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

それが仮想環境であり、manage.pyは同じフォルダーにある必要があります。その解決策は、プロジェクトを再起動することです。このエラーが発生した場合は、まだ何もコーディングしていないはずなので、再起動してください。



0

この問題(Mac)があり、以下のページの手順に従って仮想環境をインストールしてアクティブ化しました

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

$ cd [top-level-django-project-dir]

$ python3 -m pip install --user virtualenv

$ python3 -m venv env

$ソースenv / bin / activate

仮想環境をインストールしてアクティブにしたら、それを確認しました

$どのpython

次に、djangoを仮想環境にインストールしました

$ pip install django

そして、私は自分のアプリを実行することができました

$ python3 manage.py runserver

チュートリアルの次の部分に着いたとき

$ python manage.py startapp polls

別のエラーが発生しました:

     File "manage.py", line 16

   ) from exc
            ^

   SyntaxError: invalid syntax

私は削除しました

from exc

そしてそれはポーリングディレクトリを作成しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.