一个与此非常相似的问题已经存在,但它是关于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