Django 语法错误,当使用 python 3 在 virtualenv 中启动 django 项目时



一个与此非常相似的问题已经存在,但它是关于python2的。在另一个相关问题中,用户没有激活他们的虚拟环境。我做了。

在我在一个更大的项目中遇到这个问题后,我尝试并成功地将它复制到一个全新的项目中。

在空文件夹test-django中,我运行了以下内容:

virtualenv env
env/scripts/activate
pip install django

为了确保Python成功安装了Django,我尝试了:

python
import django

没有引发导入错误,运行的 Python 版本是 Python 3.6.3(v3.6.3:2c5fed8,2017 年 10 月 3 日,18:11:49)

所以后来我开始了这个项目...

django-admin startproject test

项目测试确实创建成功。然后我跑了:

cd test
./manage.py

并得到了

文件 "test-django\test\manage.py",第 14 行 ) 来自 EXC ^ 语法错误:语法无效

manage.py 的内容是:

#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "phoenix2.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)

当我删除"from exc"时,ImportError 成功引发——但我不应该得到一个 ImportError,从安装了 django 的虚拟环境中运行。

我尝试运行(从命令行中的 Python 运行)

from django.core.management import execute_from_command_line

并且没有收到导入错误

虚拟环境中 sys.path 的内容:

['', '\test-django\env\Scripts\python36.zip', '\test-django\env\DLLs', '\temp\test-django\env\lib', '\test-django\env\Scripts', 'c:\python36\Lib', 'c:\python36\DLLs', '\test-django\env'

, '\test-django\env\lib\site-packages']

运行 django-admin --版本: 2.0.5

如果有帮助,这里是一般系统Python的路径内容:

['', 'C:\Python36\python36.zip', 'C:\Python36\DLLs', 'C:\Python36\lib', 'C:\Python36'

, 'C:\Python36\lib\site-packages']

在虚拟环境中的点冻结:

姜戈==2.0.5 pytz==2018.4

一般 Python 中的 pip 冻结:

应用目录==1.4.3 lxml==4.0.0 包装==16.8 皮帕辛==2.2.0 六==1.10.0 虚拟环境v==15.1.0

运行python3 manage.py而不是./manage.py怎么样?

我建议使用pipenv而不是virtualenv + pip。

This is the simple way to start new django project:-
In terminal do following steps
$ mkvirtualenv <env_name>
$ workon <env_name>
$ pip install django
$ django-admin startproject <project_name>
$ cd <project_name>
$ ./manage.py migrate
$ ./manage.py runserver
open this in browser http://127.0.0.1:8000/
open the project in pychram and then do this 
click on file -> settings -> projects interpreter -> add local -> select <env_name> -> click bin -> click python3 or python2 -> apply -> OK

最新更新