最近幾天一直在做一個基於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文件,需要設置環境變量,如下圖。
至此,蛋疼的環境安裝成功。