使用python3在virtualenv中启动Django项目时出现Django语法错误

2024-04-23 09:01:49 发布

您现在位置:Python中文网/ 问答频道 /正文

一个问题very similar to this one已经存在,但它是关于python2的。In another related question用户没有激活他们的虚拟环境。是的。在

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

在empty folder test django中,我运行了以下命令:

virtualenv env
env/scripts/activate
pip install django

为了确保python成功地安装了django,我尝试了:

^{pr2}$

Python版本运行时出错

所以我开始了这个项目。。。在

django-admin startproject test

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

cd test
./manage.py

得到了

File "test-django\test\manage.py", line 14 ) from exc ^ SyntaxError: invalid syntax

内容管理.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

却没有得到强求

内容系统路径在虚拟环境中:

['', '\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']

virtualenv中的pip冻结:

Django==2.0.5 pytz==2018.4

python中的pip freeze:

appdirs==1.4.3 lxml==4.0.0 packaging==16.8 pyparsing==2.2.0 six==1.10.0 virtualenv==15.1.0


Tags: pip项目djangofrompytestimportenv
3条回答

通过运行python ./manage.py而不仅仅是./manage.py来修复这个问题

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

不如运行python3 manage.py而不是./manage.py?在

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

相关问题 更多 >