安裝python3
網(wǎng)上有使用pyenv
方式安裝python3以實現(xiàn)與系統(tǒng)的python版本共存而不沖突硝皂,個人覺得其實沒有必要,我們其實可以單獨運行python3田篇。
首先我們還是需要先安裝python3禀崖,這里使用homebrew安裝礁鲁,方便快捷好管理,棒棒噠
brew install python3
安裝好后可以嘗試輸入python3看是否能進(jìn)入python3命令行赁豆,可以看到我這里安裝的python3的版本是3.5.2
$ python3
Python 3.5.2 (default, Jun 29 2016, 13:43:58)
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Virtualenv
做為pythoneer仅醇,不得不知的三大神器:virtualenv
, fabric
, pip
,今天的主角就是其中之一vrtualenv
魔种,那么它是拿來做什么的呢析二,其實看意思也能懂咯,就是一個python的虛擬環(huán)境节预,中文也叫虛擬沙盒叶摄,就是說它能把項目放在一個虛擬的環(huán)境里邊,在這個環(huán)境里你使用的python版本以及安裝的依賴都不會影響環(huán)境外的項目安拟。
安裝
$ pip install virtualenv
創(chuàng)建虛擬環(huán)境
virtualenv 環(huán)境名稱[自定義] 參數(shù)
參數(shù):
--no-site-packages package //不依賴已經(jīng)裝好的第三方package蛤吓,默認(rèn)會依賴
可以通過virtualenv --help
查看更多其它參數(shù),話不多說糠赦,先擼代碼
wwwuser@iZ28u3wd0b6Z:~$ virtualenv test_env
New python executable in /home/wwwuser/test_env/bin/python
Installing setuptools, pip, wheel...done.
wwwuser@iZ28u3wd0b6Z:~$
完成后在當(dāng)前目錄會創(chuàng)建一個test_env
的文件夾会傲,進(jìn)入文件夾會發(fā)現(xiàn)生成了以下的目錄,神奇吧
├── bin
├── include
│ └── python2.7
├── lib
│ └── python2.7 //所有的新包會被存在這
│ ├── distutils
│ ├── encodings
│ ├── lib-dynload
│ └── site-packages
├── local
│ ├── bin
│ ├── include
│ └── lib
啟動虛擬環(huán)境
wwwuser@iZ28u3wd0b6Z:~/test_env$ source ./bin/activate
(test_env) wwwuser@iZ28u3wd0b6Z:~/test_env$
啟動成功后拙泽,會在前面多出test_env字樣
輸入pip list
查看項目依賴
(test_env) wwwuser@iZ28u3wd0b6Z:~/test_env$ pip list
pip (8.0.2)
setuptools (19.6.1)
wheel (0.26.0)
可以發(fā)現(xiàn)沙箱確實已經(jīng)是一個單獨的環(huán)境了
退出虛擬環(huán)境
deactivate
搭建python3項目
使用--python
參數(shù)指定python版本創(chuàng)建一個基于python3的虛擬環(huán)境
virtualenv py3_test --python=3.5
檢查環(huán)境中python版本淌山,可以發(fā)現(xiàn)虛擬環(huán)境中的python版本已經(jīng)是python3啦,好啦顾瞻,這樣即大功告成艾岂!
$ cd py3_test
tianyu at whitneydeMacBook-Pro in ~/Work/py3_test (py3_test)
$ python
Python 3.5.2 (default, Jun 29 2016, 13:43:58)
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>