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)
pythonを接続するDjangoバージョンを確認してください。
Pip install Djangoのみを使用してDjangoをインストールする場合、pip3を使用した場合はpython manage.py startapp elseを実行する必要があります 端末の例を表示するにはここをクリック Djangoをインストールしたら、python3 manage.py startappを実行する必要があります
python3 manage.py runserver
で試すことができます。わたしにはできる。
仮想環境をアクティブにする必要があります。ターミナル-> source env/bin/activateで、ターミナルに---->(env)と表示されます!
これで動作します-> runserver。
Exc部分を削除する必要はありません!
私は同じことを経験していましたが、以下のように特定のpython 3.6で実行することで解決しました:
python3.6 manage.py runserver
その単純な解決策は、実際に私がちょうど遭遇したものです。仮想環境をアクティブにしましたか?
正確な手順(「python」ではなくpython2またはpython3を使用)でテストした後、チュートリアルの説明に関係なく、これはpython3でのみ機能することを確認しました。
仮想環境を作成し、この仮想環境内でDjangoコードを実行することが最善です。これは、既存の環境を変更しないようにするのに役立ちます。仮想環境とDjangoで開始する基本的な手順は次のとおりです。
新しいディレクトリを作成し、そこにcdします。
mkdir test
、cd test
仮想環境をインストールして作成します。
python3 -m pip install virtualenv virtualenv venv -p python3
仮想環境のアクティブ化:source venv/bin/activate
Djangoのインストール:pip install Django
新しいプロジェクトを開始します:Django-admin startproject myproject
プロジェクトにcdしてプロジェクトを実行:
cd myproject
、python manage.py runserver
ここでプロジェクトを見ることができます:http://127.0.0.1:8000/
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)
Djangoをインストールした仮想環境をアクティブにする必要があります。次に、このコマンドを実行します-python manage.py runserver
また、このチュートリアルでは、仮想環境の使用を推奨しています(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/
プロジェクト外ではなく、プロジェクト内に仮想環境を作成する必要があります。それで解決します。
コンピューターに複数のバージョンのPythonがあるようです。試して削除して、アプリケーションの開発に使用した唯一のバージョンを残してください。
必要に応じて、バージョンをアップグレードできますが、コンピューターにPythonのバージョンが1つしかないことを確認してください。
これがお役に立てば幸いです。
Django管理者は間違ったファイルである可能性があります。別のコンピューターで同じセットアップフローを見つけられなかったのと同じ問題に遭遇しました。
2つのプロジェクトを比較した後、manage.pyとsettings.pyでいくつかの違いを見つけ、2.0 Djangoプロジェクトを作成したが、python2で実行したことに気付きました。
runwhich Django-admin
in 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
成功した????
pythonバージョンを記述するだけです
=> python3.5 manage.py runserver
(my python version = 3.5)
同じ状況を解決しました。
インストール済みバージョン
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パスを修正します。
まったく同じエラーが発生しましたが、Djangoおよびその他の必要なパッケージがインストールされているconda環境をアクティブにするのを忘れていることが後でわかりました。
解決策:Djangoがインストールされたcondaまたは仮想環境を作成し、コマンドを使用する前にアクティブにします:$ python manage.py migrate
ただやる:
pipenv Shell
次に繰り返します:
python manage.py runserver
上記のようにfrom exc
を削除しないでください。
乾杯!
Djangoはコンテナにインストールされますが、コマンドを実行しているホストマシンにはない可能性があります。次に、コマンドはどのように実行されますか。したがって、上記の解決策は私には役立たなかったからです。
実行中のコンテナを見つけ、docker exec -it <container> bash
を使用して実行中のコンテナに入り、その後、Dockerコンテナ内でコマンドを実行しました。ボリューム化されたコンテナがあるので、行われた変更もローカルに反映されます。実行されるコマンドは、実行中のコンテナ内で実行できます
仮想環境をアクティブ化するのを忘れたため、まったく同じ例外が発生しました。
次のコマンドでenvをアクティブにします
source pathetoYourEnv/bin/activate
その後、コマンドを実行します
python manage.py runserver
私は同じ問題を抱えていて、それを解決できました。これは、インストールしたDjangoのバージョンに関連しており、その一部はpython 2.7でサポートされていません。 Djangoをpipでインストールした場合、おそらくpython 2.7でサポートされていない最新バージョンをインストールすることを意味します。詳細については、こちらをご覧ください ここ 。インストール中にpython 3またはDjangoのバージョンを指定することをお勧めします(python 2.7の場合は1.11です)。
将来の読者のために、私も同じ問題を抱えていました。 PythonをWebサイトから直接インストールするだけでなく、Anacondaの別のバージョンがこの問題を引き起こしたことが判明しました。 Python2.7をアンインストールし、anacondaを唯一のディストリビューションとして保持する必要がありました。
Djangoの仮想環境に入りましたか?まだインストールしていない場合は、python -m venv myvenv
を実行します。
まず、端末cdを使用して、manage.pyを含むディレクトリに移動します。
次に、angular括弧なしで、$source <myvenv>/bin/activate
と入力し、仮想環境名に置き換えます。
別の問題として、ルートディレクトリとvenvが一致しないことがあります。構造は次のようになります。
|-website
..facebook
..manage.py
..myvenv
..some other files
これが仮想環境であり、manage.pyは同じフォルダーにある必要があります。その解決策は、プロジェクトを再起動することです。このエラーに直面している場合は、まだ何もコーディングしていないはずなので、再起動してください。
次の理由が考えられます。
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
この問題を解決して、複数バージョンのPythonをアンインストールしました。 Django Official Documentation 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の複数のバージョンが原因で別のエラーが生成されます。