小竈時間-若是你還不會用Python虛擬環境

一個鼓搗電腦多年的程序猿,帶給你的幾點編程套路和幾個靈巧工具,但願爲你的編程之路添磚加瓦,加血回藍,一塊兒拼荊斬棘,共同成長。統稱:小竈時間,做者:第8哥。html

1. 爲何用Python虛擬環境

實際工做中,咱們接觸的 Python 版本和相關的 web 框架版本每每是不同的,好比有的組合多是 python2 + Django1.8,有的多是 python3.6 + Django1.12,兩個還好辦,我在電腦上安裝兩個版本的 python 不就行了?python

可是,若是有五六七八個項目,須要五六七八套 python 環境呢?這就輪到虛擬環境登場了。linux

2. 下載安裝

2.1 Windows

直接下載安裝包,下載完,直接下一步默認安裝就好。web

下一步next

默認全部用戶

默認安裝3.6-記得選上添加到環境變量path,或者安裝完手動添加

記得選上添加到環境變量path,或者安裝完手動添加sql

開始安裝

安裝完成

不用查看這倆,看個人就好!

2.2 Linux or Mac

直接下載腳本 xxxx.sh ,xxxx 指代版本號,打開控制檯終端,cd 到那個下載目錄,而後直接 sh xxxx.sh 安裝就ok了shell

3 怎麼玩-基本命令

3.1 基本命令說明

(Windows最好配合ConEmu,cmder等非原裝cmd使用)django

image.png

#查看版本
conda info —envs
或
conda env list

# **注意,爲了不你的網絡太慢,請先運行下面命令加速一些**

(這裏只是多添加了一些下載軟件包的頻道,方便國內下載,若是要更換,能夠自行搜索:anaconda國內源)

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

# 安裝完整版python2版本的conda
conda create -n py2 python=2 anaconda

# 移除虛擬環境
conda remove --all -n 3todo

# 建立只有django的python2環境,名字py2-dj,注意,python=2 django是連續參數
conda create python=2 django -n py2-dj

# 若是不指定python版本,那是不可以滴,會報錯
conda create -n env-test
Error: too few arguments, must supply command line package specs or --file

# 因此要至少指定個python版本,能夠不帶任何庫
conda create -n env-test python=3
Fetching package metadata .......

# clone環境的2種辦法
1. pip(只是複製安裝包)
(pytest) C:\ProgramData\Anaconda3>cd D:\pyTools
(pytest) C:\ProgramData\Anaconda3>d:
(pytest) D:\pyTools>pip freeze > env.txt
env.txt裏內容以下:
Django==1.10.5

新建環境pytest2,並進入,加入這裏只有個requests
(pytest2) D:\pyTools>pip freeze
requests==2.14.2
下面把pytest的包安裝過來
(pytest2) D:\pyTools>pip freeze
requests==2.14.2

(pytest2) D:\pyTools>pip install -r env.txt
Collecting Django==1.10.5 (from -r env.txt (line 1))
  Downloading Django-1.10.5-py2.py3-none-any.whl (6.8MB)
    100% |████████████████████████████████| 6.8MB 144kB/s
Installing collected packages: Django
Successfully installed Django-1.10.5

(pytest2) D:\pyTools>pip freeze
Django==1.10.5
requests==2.14.2

2. 使用clone命令(複製整套環境)
D:\pyTools>conda create --clone pytest2 -n py3
Source:      C:\Anaconda3\envs\pytest2
Destination: C:\Anaconda3\envs\py3
(py3) D:\pyTools>pip freeze
Django==1.10.5
requests==2.14.2

新建虛擬環境示意圖:編程

新建pytest

進入環境

查看安裝包

3.2 寫個Django環境測試一下:

D:\pyTools>cc py2dj18 python=2 django=1.8
Fetching package metadata .......
Solving package specifications: ..........
coa py2dj18 # 激活環境
1. 新建 project
django-admin.py startproject pxjgz

2. 新建 app
cd pxjgz 進入目錄
python manage.py startapp app01
或 django-admin.py startapp app01

3. python manage.py runserver

打開瀏覽器,在 127.0.0.1:8000 就能看見能夠工做的界面了。瀏覽器

4 自定義命令別名[這是關鍵]

是否是上面有些命令運行不了?彆着急,由於我自定義了一些。bash

下面是我本身編的,你能夠自定義。而後放到.bashrc,或.bash_profile就能夠了!

4.1 linux或mac

# alias for conda
 alias cl="conda env list"
 alias cc="conda create -n"
 alias coa="source activate"
 alias cod="source deactivate"
 alias cr="conda remove --all -n"

注意:對於Linux,最好本身添加一下環境變量,conda的腳本執行完,也會提醒你的。
添加下面這行到.bashrc

export PATH=/root/anaconda3/bin:$PATH

最後別忘了從新加載一下。

source ~/.bashrc

4.2 Windows最好配合ConEmu使用

在settings->Startup>Environment

alias cl=conda env list
alias cc=conda create -n $*
alias coa=activate $*
alias cod=deactivate
alias cr=conda remove --all -n $*

『補充』在mac中的使用示例

創建py3-dj,使用和刪除的整個過程

-------
~ cc py3-dj python=3 django
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/howie/anaconda3/envs/py3-dj:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    django-1.9.5               |           py35_0         3.6 MB
    setuptools-26.1.1          |           py35_0         524 KB
    ------------------------------------------------------------
                                           Total:         4.1 MB

The following NEW packages will be INSTALLED:

    django:     1.9.5-py35_0
    openssl:    1.0.2h-2
    pip:        8.1.2-py35_0
    python:     3.5.2-0
    readline:   6.2-2
    setuptools: 26.1.1-py35_0
    sqlite:     3.13.0-0
    tk:         8.5.18-0
    wheel:      0.29.0-py35_0
    xz:         5.2.2-0
    zlib:       1.2.8-3

Proceed ([y]/n)? y

Fetching packages ...
django-1.9.5-p 100% |################################| Time: 0:00:08 437.51 kB/s
setuptools-26. 100% |################################| Time: 0:00:03 154.73 kB/s
Extracting packages ...
[      COMPLETE      ]|###################################################| 100%
Linking packages ...
[      COMPLETE      ]|###################################################| 100%
#
# To activate this environment, use:
# $ source activate py3-dj
#
# To deactivate this environment, use:
# $ source deactivate
#
➜  ~ cl
# conda environments:
#
py2                      /Users/howie/anaconda3/envs/py2
py2-dj                   /Users/howie/anaconda3/envs/py2-dj
py3-dj                   /Users/howie/anaconda3/envs/py3-dj
root                  *  /Users/howie/anaconda3

➜  ~ coa py3-dj
(py3-dj) ➜  ~ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.__version__
'1.9.5'
>>>
(py3-dj) ➜  ~ cod
➜  ~ cl
# conda environments:
#
py2                      /Users/howie/anaconda3/envs/py2
py2-dj                   /Users/howie/anaconda3/envs/py2-dj
py3-dj                   /Users/howie/anaconda3/envs/py3-dj
root                  *  /Users/howie/anaconda3

➜  ~ cr py3-dj

Package plan for package removal in environment /Users/howie/anaconda3/envs/py3-dj:

The following packages will be REMOVED:

    django:     1.9.5-py35_0
    openssl:    1.0.2h-2
    pip:        8.1.2-py35_0
    python:     3.5.2-0
    readline:   6.2-2
    setuptools: 26.1.1-py35_0
    sqlite:     3.13.0-0
    tk:         8.5.18-0
    wheel:      0.29.0-py35_0
    xz:         5.2.2-0
    zlib:       1.2.8-3

Proceed ([y]/n)? y

Unlinking packages ...
[      COMPLETE      ]|###################################################| 100%

做者:第8哥,轉載請註明出處

相關文章
相關標籤/搜索