课程大作业要求使用Django + python + mongodb实现网页版调查问卷,于是在Django官网找到了一个投票练习项目。但是出师不利,在填写urls.py文件时就遇到了找不到django下的部分模块的问题,经检查,应该是Django版本问题,Django从1.11到2在urls模块经过了比较大的改变。于是决定重新配置Django环境。
首先利用anaconda自带的虚拟环境功能为Django创建独立环境:
sudo conda create -n django-2.1
然后激活环境,并为该环境安装python3.6:
source activate django-2.1
sudo conda install -n django-2.1 python=3.6
在anacondo的默认channel和清华镜像没有找到Django-2.1,于是采用pip安装。
sudo pip install Django==2.1
但是总是出现安装不成功或者安装成功但在python 中无法调用该包的问题。检查安装信息,发现Django默认安装在了anaconda本身的环境中,而非django-2.1专用:
Requirement already satisfied: pytz in /Users/mayuening/workspace_ana/anaconda3/lib/python3.6/site-packages (from Django==2.1)
于是为当前环境安装pip:
sudo conda install -n django-2.1 pip
卸载旧的django:
sudo pip uninstall django
此时bash提示pip版本低,于是根据提示升级:
sudo pip install --upgrade pip
这时出现了有趣的情况,再输入pip指令,提示:
(django-2.1) mayueningdeMBP:djangoWS mayuening$ pip
-bash: /Users/mayuening/workspace_ana/anaconda3/bin/pip: No such file or directory
检查当前pip版本:
which pip
/Users/mayuening/workspace_ana/anaconda3/envs/django-2.1/bin/pip
发现给出了一个新的路径,也就是我们创建的虚拟环境。但是pip仍然不能直接使用,应该是没有加入PATH变量。把为虚拟环境配置的pip直接加入PATH感觉不太合适,应该是有另外的设置方法。这里暂时跳过,解决Django安装问题:
sudo /Users/mayuening/workspace_ana/anaconda3/envs/django-2.1/bin/pip install Django==2.1
也就是简单粗暴地给出绝对路径。这个路径不用记住,因为使用which pip即可给出。
提示安装成功,进入python,输入
from django.urls import include, re_path
没有报错。配置成功!