Python 如何解决自动生成的manage.py上的SyntaxError?

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教程

我创建了一个“mysite”虚拟项目(我的第一个项目),并尝试在不改变它的情况下对其进行测试

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