web-dev-qa-db-ja.com

自動生成されたmanage.pyのSyntaxErrorを解決するにはどうすればよいですか?

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 __== "__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)
58
Frank

pythonを接続するDjangoバージョンを確認してください。

Pip install Djangoのみを使用してDjangoをインストールする場合、pip3を使用した場合はpython manage.py startapp elseを実行する必要があります 端末の例を表示するにはここをクリック Djangoをインストールしたら、python3 manage.py startappを実行する必要があります

67
lobsang

python3 manage.py runserverで試すことができます。わたしにはできる。

24
Fernando

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

これで動作します-> runserver。

Exc部分を削除する必要はありません!

16
Aditya Sinha

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

python3.6 manage.py runserver
9
Martin Karari

その単純な解決策は、実際に私がちょうど遭遇したものです。仮想環境をアクティブにしましたか?

私の端末のスクリーンショット

8
Vipin Mohan

正確な手順(「python」ではなくpython2またはpython3を使用)でテストした後、チュートリアルの説明に関係なく、これはpython3でのみ機能することを確認しました。

5
Frank

仮想環境を作成し、この仮想環境内で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/

4
Sbk3824

from exec部分を削除するだけで、次のようになります

if __== "__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?"
        )
    execute_from_command_line(sys.argv)
3
Esir Kings

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

2
Wasique Ansari

また、このチュートリアルでは、仮想環境の使用を推奨しています(Djangoドキュメントを参照してください: https://docs.djangoproject.com/en/2.0/topics/install/#installing-official-release ")。pipenv --threeでこれを行うことができます。Djangoをpipenv install Djangoでインストールし、pipenv Shell、pythonは、python manage.py runserverを実行するときにpython3を参照します。

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

1
David Weisiger

プロジェクト外ではなく、プロジェクト内に仮想環境を作成する必要があります。それで解決します。

1
Shikha Mangal

コンピューターに複数のバージョンのPythonがあるようです。試して削除して、アプリケーションの開発に使用した唯一のバージョンを残してください。

必要に応じて、バージョンをアップグレードできますが、コンピューターにPythonのバージョンが1つしかないことを確認してください。

これがお役に立てば幸いです。

1
HayWhy

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

2つのプロジェクトを比較した後、manage.pyとsettings.pyでいくつかの違いを見つけ、2.0 Djangoプロジェクトを作成したが、python2で実行したことに気付きました。

runwhich Django-adminin iterm

/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: [email protected]
License: BSD
Location: /Library/Python/2.7/site-packages
Requires: pytz

In/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
chie

pythonバージョンを記述するだけです

=> python3.5 manage.py runserver

(my python version = 3.5)

0
SAMARAT ADITYA

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

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

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パスを修正します。

0
Otsuki Takaya

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

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

0
SanjayThapa

ただやる:

pipenv Shell

次に繰り返します:

python manage.py runserver

上記のようにfrom excを削除しないでください。

乾杯!

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

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

0

仮想環境をアクティブ化するのを忘れたため、まったく同じ例外が発生しました。

0
Begueradj

次のコマンドでenvをアクティブにします

  source  pathetoYourEnv/bin/activate

その後、コマンドを実行します

python manage.py runserver
0
Vinod Ranga

私は同じ問題を抱えていて、それを解決できました。これは、インストールしたDjangoのバージョンに関連しており、その一部はpython 2.7でサポートされていません。 Djangoをpipでインストールした場合、おそらくpython 2.7でサポートされていない最新バージョンをインストールすることを意味します。詳細については、こちらをご覧ください ここ 。インストール中にpython 3またはDjangoのバージョンを指定することをお勧めします(python 2.7の場合は1.11です)。

0
Keivan

将来の読者のために、私も同じ問題を抱えていました。 PythonをWebサイトから直接インストールするだけでなく、Anacondaの別のバージョンがこの問題を引き起こしたことが判明しました。 Python2.7をアンインストールし、anacondaを唯一のディストリビューションとして保持する必要がありました。

0
Kshitij G

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

0
tomilia

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

どうやるか?

まず、端末cdを使用して、manage.pyを含むディレクトリに移動します。

次に、angular括弧なしで、$source <myvenv>/bin/activateと入力し、仮想環境名に置き換えます。

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

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

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

0
rishabh jain

次の理由が考えられます。

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
0
imbond

この問題を解決して、複数バージョンのPythonをアンインストールしました。 Django Official Documentation 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 __== '__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の複数のバージョンが原因で別のエラーが生成されます。