最近几天一直在做一个基于django的网站,正准备安装xadmin来替代admin,这里就用到了虚拟环境,我在虚拟环境中安装了python3.6(Mac系统自带有python2.7),在runserver的时候一直报错。一怒之下,我卸载了virtualenv、mysqlclient、django、python3.6,然后全部重新安装,下面记录一下如何是安装成功的。
1. 安装python 3.6
首先,卸载mac上原有的python 3.6 ,因为之前安装过python3.5和3.6两个版本,所以先卸载,在terminal中操作如下:
删除Python 3.6 framework:
sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.6
删除Python 3.6 应用目录:
sudo rm -rf “/Applications/Python 3.6”
删除/usr/local/bin 目录下指向的Python3.6的连接:
cd /usr/local/bin/
ls -l /usr/local/bin | grep ‘../Library/Frameworks/Python.framework/Versions/3.6’ | awk ‘{print $9}’ | tr -d @ | xargs rm
删除系统中环境变量的配置:
vim .bash_profile
将红框中的内容删除即可,至此mac上python3.6的所有残余全部删除;接下来可以安装python3.6了。
在 python官网 下下载python3.6的文件,下载后双击安装即可。然后检查安装是否成功:
2. 安装django
按照之前的安装步骤,我在terminal中执行如下命令
pip install django
很快,django2.0版本安装成功,我迫不及待滴想运行一下项目:
python manage.py runserver
OK,毫无意外,程序运行成功。但是,但是我的mac上安装了两个python3.6,我想在3.6环境下运行一下程序,如是:
python3 manage.py runserver
然而瞬间傻眼了,报了一堆错误:
同样的代码,在python2.7上运行成功,但是在python3.6上报错,原因何在?我再次打开.bash_profile发现django的环境变量配置如下
# Setting PATH for django(python2.7)
export PYTHONPATH="/usr/local/lib/python2.7/dist-packages/django"
所以,我以为就是因为django只配置在2.7下,故在3.6下无法运行。如是我先卸载了django。
如果要在3.6下运行程序怎么办?我查了很长时间,终于找到在3.6下安装django的方法:
sudo python3 -m pip install django
注意:这条命令与之前命令的区别
很快,django2.0安装成功,再次运行程序即可成功:
python3 manage.py runserver
此时,我想重新创建一个项目,检查一下python3下面的环境配置
django-admin startproject test2
很不幸,又报错了
MacBook-Pro-2:python-works yucanghai$ django-admin startproject icoachu_website
-bash: /usr/local/bin/django-admin: No such file or directory
此时特别需要说明的是:
- Django2.0 后创建项目需要用django-admin.py
- Django2.0之前创建项目需要用django-admin
- 如果安装了两个版本,这两条命令都可以用
3. 安装虚拟环境virtualenv
安装virtualenv
pip3 install virtualenv
然后在本地创建一个虚拟环境的文件夹
virtualenv python_envs
MacBook-Pro-2:icoachu_website yucanghai$ cd python_envs/
MacBook-Pro-2:python_envs yucanghai $ ls
bin include lib pip-selfcheck.json
MacBook-Pro-2:python_envs yucanghai $ cd bin/
MacBook-Pro-2:bin yucanghai $ ls
activate easy_install pip3.6 python3.6
activate.csh easy_install-3.6 python wheel
activate.fish pip python-config
activate_this.py pip3 python3
MacBook-Pro-2:bin yucanghai $ source activate
(python_envs) MacBook-Pro-2:bin yucanghai $ deactivate
其中,source activate为激活虚拟环境,deactivate为退出虚拟环境。
Virtaulenvwrapper是virtualenv的扩展包,可以更方便地新增,删除,复制,切换虚拟环境。
运行下面命令就安装成功了,默认安装在 /usr/local/bin下面:
sudo pip3 install virtualenvwrapper
接下来创建一个文件夹,用来存放所有的虚拟环境:
$ mkdir ~/workspaces
$ cd ~/workspaces
但是在使用virtualenvwrapper之前,要运行virtualenvwrapper.sh文件,需要设置环境变量,如下图。
至此,蛋疼的环境安装成功。