開發環境配置pyenv快速入門

哎呀我的天吶發表於2017-03-31

pyenv的官網github.com/pyenv/pyenv

Linux版本是CentOS 7

第一步:使用yum安裝git

[root@localhost ~]# yum -y install git

第二步:python安裝依賴開發環境

yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel libffi-devel


yum install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev libedit-dev


注意:libffi-devel 包是python3.7版本所需要到,不然會報ModuleNotFoundError: No module named '_ctypes' 錯誤


第三步:新增一個普通使用者python,並設定密碼

這裡新增的使用者名稱不一定非要python,當然你也可以用root,我這裡用普通賬號來實現。

[root@localhost ~] useradd python

[root@localhost ~] passwd python


第四步:安裝pyenv

用python使用者登入執行如下命令,安裝pyenv

[root@localhost ~]

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

極其重要的操作:在安裝完畢之後,在最後會有一個提示,讓我們將如下的程式碼加入到使用者家目錄的.bash_profile(CentOS 6)中或者.bashrc(CentOS 7)中


# Load pyenv automatically by adding

# the following to ~/.bashrc:


export PATH="/root/.pyenv/bin:$PATH"

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"



第五步:我們檢視當前系統python版本,然後安裝我們需要的版本

[root@localhost ~] python -V     # CentOS 7預設自帶的是2.7版本

# 利用pyenv檢視pyenv所支援的命令

[root@localhost ~] pyenv             #檢視pyenv所支援到命令


# 檢視如何安裝所需要的版本

[root@localhost ~] source /home/python/.bashrc   # 重新整理配置檔案否則下面語句無法執行  也可以用 . .bashrc   (要確保在python的家目錄也就是/home/python目錄中)

[root@localhost ~] pyenv help install          #檢視install 到幫助


相關引數:

-l            檢視所有可以使用的版本

-f            強制重新安裝,即使該版本已經安裝了

-s            如果該版本已經安裝,則跳過

-v            顯示安裝的過程


安裝相關版本直接使用pyenv install版本號

[root@localhost ~] pyenv install 3.7.6  -v      #安裝3.7.6

注意:由於原始碼是從國外伺服器下載,有時候會下載失敗,那麼我們可以在home目錄的.pyenv目錄中建一個cache資料夾,將我們從其他地方已經下載好的包放進去,這裡需要注意的是,直接安裝下載的是什麼格式的包,我們就需要放入什麼格式的包,否則程式不會自動識別,為了保證成功,把所有的都放進去即可。我當前安裝的時候,顯示的是包是.tar.xz ,官網有.tar.xz和.tgz兩種格式。

第六步:我們重新執行安裝命令

[root@localhost ~] pyenv install 3.7.6  -v     #安裝3.7.6

這樣系統就會繼續編譯安裝python 3.7.3 

第七步:檢視所有已安裝的版本,然後設定python3.7.3為預設版本

[root@localhost ~] pyenv versions       #檢視已安裝到所有版本

如下圖所示:

我們設定Python預設版本有三種情況

global :全域性設定,包括當期其他使用者或其他專案都會改變,基本上不可能用global來設定

shell  :會話設定,只在當前會話生效,斷開連結就失效,也基本上不用

local  :區域性設定,針對的是一個資料夾,我們可以建立一個資料夾然後講專案放到該資料夾中這樣既不會影響其他使用者,也可以讓自己的環境得以配置


local設定操作如下:

# 建立一個目錄

[root@localhost ~] mkdir onekey/projects  -p     #遞迴建立目錄

# 進入該目錄設定環境python版本

[root@localhost ~] cd ./onekey/projects/        #進入projects目錄

[root@localhost ~] pyenv local  3.7.6    #將projects目錄設定為3.7.6


# 檢視是否設定成功,上級目錄或其他目錄都是預設到2.7,該目錄下建立到子目錄都是3.7.3

[root@localhost projects]# pyenv version     #檢視python版本

3.7.6 (set by /root/onekey/projects/.python-version)


# 另一種檢視方式,如果該種方式檢視沒有改過來,可斷開重新連線

[root@localhost projects]# python -V

Python 3.7.6


# 進入上級目錄檢視python環境。

[python@CentOS60 projects]$ cd ..

[python@CentOS60 study]$ python -V

Python 2.7.5

第八步:配置虛擬環境

由於在第七步上面我們每一個專案或所需要到包或者環境都不可能完全一樣,為了減少相互影響我們需要建立一個虛擬環境,我們將projects目錄改回系統預設到python環境,進入projects目錄

[python@CentOS60 projects]$ pyenv local  system          #將環境設定為系統預設


建立一個新的目錄,如 check

[root@localhost  projects] mkdir check     #建立check目錄


進入cmdb,建立虛擬目錄

[root@localhost  projects] cd c heck

[root@localhost check]# pyenv activate check376

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

[root@localhost check]# pyenv virtualenv 3.7.6 checktool376            #  checktool376是別名

使用virtualenv外掛(該外掛無需額外安裝,直接使用即可),後面接python版本,並給當前虛擬環境取一個別名。建立好了之後,我們只要進入該資料夾,就會在目錄前面加上我們到的別名,如下所示

( checktool376 ) [python@CentOS60 cmdb]$ pyenv versions

 system

 3.7.3

 3.7.3/envs/zcf373

* zcf373 (set by /home/python/study/projects/cmdb/.python-version)


配置pip安裝映象

在python使用者的home目錄中建立一個pip資料夾,進入pip資料夾建立一個pip.conf檔案,輸入如下資訊:

[global]

index-url=https://mirrors.aliyun.com/pypi/simple

trusted-host=mirrors.aliyun.com


具體步驟如下所示:

[python@CentOS60 ~]$ mkdir .pip        #建立隱藏資料夾.pip

[python@CentOS60 ~]$ cd .pip/             #進入.pip

[python@CentOS60 .pip]$ touch pip.conf #建立檔案pip.conf

[python@CentOS60 .pip]$ vim pip.conf      #輸入上面到內容


建立好來之後我們可以驗證是否配置成功

(study373 ) [python@CentOS60 cmdb]$ pip install redis

從下載到網址和速度我們可以看到已經配置成功來。


如果要刪除虛擬環境怎麼辦呢?

方法一:刪除對應的目錄資料夾即可:

首先刪除  /root/.pyenv/versions 對應的虛擬環境名,這裡只是一個軟連線

在就是刪除  /root/.pyenv/versions/3.7.6/envs 目錄中的虛擬環境名,上面的軟連線就是指向這個位置的。

方法二:使用命令刪除

[python@CentOS60 .pip]$ pyenv virtualenv-delete 虛擬環境名


 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2136391/,如需轉載,請註明出處,否則將追究法律責任。

相關文章