Django開發實戰及進階:Python獨立環境安裝

在實際的學習開發過程當中,不少時候同時進行的項目不止一個,他們用到的python版本可能不同,爲了避免讓一個項目的環境影響到另一項目,咱們須要安裝配置多個相互不依賴的環境來運行多個python項目,pyenv 結合插件 virtualenv 就恰好知足這個需求,python


安裝pyenv

默認是安裝在當前用戶的家目錄mysql

root@pts/2 $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/root/.pyenv'...
remote: Counting objects: 12744, done.
remote: Total 12744 (delta 0), reused 0 (delta 0), pack-reused 12744
Receiving objects: 100% (12744/12744), 2.26 MiB | 453.00 KiB/s, done.
Resolving deltas: 100% (8837/8837), done.

複製代碼

配置pyenv, 修改~/.bashrc 爲以下linux

root@pts/2 $ cat ~/.bashrc 
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

## add by colin
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
## end by colin 

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
複製代碼

配置生效git

### 方式一
從新打開一個新的 session,也就是新的命令行界面

### 方式二
在當前的命令行執行 source ~/.bashrc

### 方式三
在當前的命令行執行 exec $SHELL -l
複製代碼

配置生效以後驗證github

root@pts/5 $ pyenv versions
* system (set by /root/.pyenv/version)
複製代碼

安裝插件 virtualenv

推薦使用 pyenv 來安裝插件 pyenv-virtualenvsql

root@pts/5 $ ls -l ~/.pyenv/plugins/
total 4
drwxr-xr-x 5 root root 4096 Jun  7 10:51 python-build

root@pts/5 $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Counting objects: 1800, done.
remote: Total 1800 (delta 0), reused 0 (delta 0), pack-reused 1800
Receiving objects: 100% (1800/1800), 517.45 KiB | 143.00 KiB/s, done.
Resolving deltas: 100% (1230/1230), done.

root@pts/5 $ ls -l ~/.pyenv/plugins/
total 8
drwxr-xr-x 7 root root 4096 Jun  7 12:00 pyenv-virtualenv
drwxr-xr-x 5 root root 4096 Jun  7 10:51 python-build

複製代碼

配置插件bash

修改~/.bashrc 添加以下行 在上面的配置 pyenv時添加的後面session

eval "$(pyenv virtualenv-init -)"
複製代碼

添加只有以下:學習

## add by colin
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
## end by colin 
複製代碼

生效方式參考上面pyenv的方式,這裏再也不重複ui


pyenv 安裝Python多版本

從上面的 pyenv versions 結果看到當前主機只有一個 system環境 ,也就是說只有一個系統的Python版本,並且目前Linux系統默認的Python版本是2.7,大多狀況不知足咱們實際的需求。咱們能夠回用到python3.6等等。

因此能夠利用 pyenv 安裝Python多版本,簡單方便

首先安裝相關依賴

yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y

複製代碼

安裝新版本

root@pts/0 $ pyenv install 3.4.4 -v
/tmp/python-build.20160608164944.31714 /tmp
/tmp/python-build.20160608164944.31714/Python-3.4.4 /tmp/python-build.20160608164944.31714 /tmp
Installing Python-3.4.4...
configure: WARNING: unrecognized options: --enable-unicode
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
... ...
Ignoring indexes: https://pypi.python.org/simple
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-7.1.2 setuptools-18.2
/tmp/python-build.20160608161532.16979 /tmp
/tmp
Installed Python-3.4.4 to /root/.pyenv/versions/3.4.4
複製代碼

檢查是否安裝成功

root@pts/3 $ pyenv versions
* system (set by /root/.pyenv/version)
  3.4.4
複製代碼

能夠看到咱們已經安裝了一個新的 Python版本 3.4.4


建立獨立虛擬環境

建立新的虛擬環境實際存在於~/.pyenv/versions/目錄

## 建立 名字爲py3.4.3的虛擬環境
## 注意 第三個 '3.4.4' 版本號碼是必須的
root@pts/5 $  pyenv virtualenv 3.4.4 py3.4.4
Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in /root/.pyenv/versions/3.4.4/envs/py3.4.4/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /root/.pyenv/versions/3.4.4/envs/py3.4.4/lib/python3.4/site-packages

## 查看新增的虛擬環境
root@pts/5 $ ls -l ~/.pyenv/versions/
total 8
drwxr-xr-x 7 root root 4096 Jun  7 12:05 3.4.4
lrwxrwxrwx 1 root root   40 Jun  7 12:05 py3.4.4 -> /root/.pyenv/versions/3.4.4/envs/py3.4.4

root@pts/5 $ pyenv versions
  system
* 3.4.4 (set by /root/.pyenv/version)
  3.4.4/envs/py3.4.4
  py3.4.4
複製代碼

虛擬環境的使用

## 進入虛擬環境
root@pts/6 $ pyenv activate py3.4.4
pyenv-virtualenv: prompt changing will be removed from future release. configure 'export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(py3.4.4) Dev-mysql-mem [~] 2016-06-07 12:12:35

## 查看虛擬環境版本
root@pts/6 $ python -V
Python 3.4.4

## 退出到系統環境
root@pts/6 $ pyenv deactivate
Dev-mysql-mem [~] 2016-06-07 12:14:46
root@pts/6 $ 
複製代碼

虛擬環境的卸載

## 方式一:暴力刪除
rm -rf ~/.pyenv/versions/py3.4.4

## 方式二:溫柔卸載
pyenv uninstall py3.4.4
複製代碼

至此 利用 pyenv+virtualenv 安裝多Python環境和獨立的虛擬開發環境已經完成,接下來開啓咱們新的征程吧


補充

相關文章
相關標籤/搜索