Python 如何解决自动生成的manage.py上的SyntaxError?
我正在学习Django教程 我创建了一个“mysite”虚拟项目(我的第一个项目),并尝试在不改变它的情况下对其进行测试Python 如何解决自动生成的manage.py上的SyntaxError?,python,syntax-error,Python,Syntax Error,我正在学习Django教程 我创建了一个“mysite”虚拟项目(我的第一个项目),并尝试在不改变它的情况下对其进行测试 django-admin startproject mysite cd mysite python manage.py runserver File "manage.py", line 14 ) from exc ^ SyntaxError: invalid syntax 我在一个由系统本身生成的文件上得到了一个语法错误。而且我似乎找不到其他经历过同样问题的人 我将添加一
django-admin startproject mysite
cd mysite
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
我在一个由系统本身生成的文件上得到了一个语法错误。而且我似乎找不到其他经历过同样问题的人
我将添加一些我的设置数据,以防它可能有用
$ 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)
在使用精确的指令进行测试(使用python2或python3而不仅仅是“python”)之后,我发现无论教程怎么说,这只适用于python3。此外,教程建议使用虚拟环境(请参阅Django文档:)。您可以使用
pipenv--three
完成此操作。使用pipenv安装django
安装django并使用pipenv shell
激活虚拟环境后,python将在执行python manage.py runserver
时引用python3
Pipenv文件:
确保将django连接到哪个python版本(如果使用虚拟环境,请确保激活虚拟环境)。 当您使用
pip install django
那你得跑了
python manage.py startapp <yourApp name>
那你得跑了
python3 manage.py startapp <yourapp name>
python3 manage.py startapp
参考:只需激活您的虚拟环境。这是一个简单的解决方案,实际上是我刚刚遇到的。您是否激活了您的虚拟环境
$ source env/bin/activate
您应该激活您的虚拟环境。 在终端->源环境/箱/激活 现在将在您的终端中显示---->(env) 现在它将工作->运行服务器
无需删除exc部件!您可以尝试使用
python3 manage.py runserver
。
它适合我。我想知道的是,虽然django安装在容器中,但它可能不在运行命令的主机中。那么命令将如何运行。因此,由于没有上述解决方案适合我
我找到了正在运行的容器,并使用docker exec-it bash进入了正在运行的容器,然后在docker容器中运行了该命令。由于我们有了卷容器,所做的更改也将反映在本地。任何要运行的命令都可以在正在运行的容器中运行django管理员可能是错误的fi我遇到了相同的问题,我没有在不同的计算机上发现相同的设置流程 在比较了两个项目之后,我发现manage.py和settings.py有一些不同,然后我意识到我创建了2.0 django项目,但使用python2运行它 在iterm中运行
哪个django admin
/Library/Frameworks/Python.framework/Versions/3.6/bin/django-admin
看起来我在python3中找到了一个django管理员,但我不知道为什么。所以我试着找到正确的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包中,我找到了django管理员
/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以及从Anaconda安装另一个版本导致了这个问题。我必须卸载Python2.7,并且只保留Anaconda作为唯一的发行版。您是否已经进入django的虚拟环境?如果尚未安装,请运行Python-m venv myvenv
.我们必须在项目内部而不是项目外部创建虚拟环境。。
然后它将解决..我也遇到了同样的问题,但这是通过使用特定的python 3.6来解决的,如下所示:
python3.6 manage.py runserver
您必须激活安装了django的虚拟环境。
然后运行这个命令
-python manage.py运行服务器只需执行以下操作:
pipenv外壳
然后重复:
python manage.py runserver
不要像上面建议的那样从exc中删除
干杯!您的计算机上似乎有多个Python版本。
尝试删除一个,并保留用于开发应用程序的唯一版本
如果需要,您可以升级您的版本,但请确保您的计算机上只有一个Python版本
我希望这有帮助。我也遇到了同样的问题,可以解决它。这与您安装的Django版本有关,其中一些版本不受python 2.7支持。如果您使用pip安装了Django,这意味着您正在安装python 2.7可能不支持的最新版本,您可以获得有关我建议在安装过程中使用Python3或指定Django的版本(Python2.7的版本是1.11).最好创建一个虚拟环境并在此虚拟环境中运行Django代码,这有助于不更改现有环境。以下是从虚拟环境和Django开始的基本步骤
创建一个新目录并将cd放入其中
mkdir测试
,cd测试
安装并创建虚拟环境
$ source env/bin/activate
python3-mpip安装virtualenv
virtualenv-p python3
激活虚拟环境:source-venv/bin/Activate
安装Django:pip安装Django
启动新项目: <代码>django管理启动项目myproject
将cd复制到项目并运行项目:
cd myproject
,
python manage.py runserver
您可以在此处看到您的项目:http://127.0.0.1:8000/
我解决了这个问题,卸载了Python的多版本。
检查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)
如果删除“从exc”f
python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
|-website
..facebook
..manage.py
..myvenv
..some other files
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
$ source env/bin/activate
source bin/activate
python3 manage.py runserver
./manage.py `enter code here`<command>
pythonx.x manage.py <command>
$ source venv/bin/activate
$ python manage.py collectstatic