[記錄] python 3.x版安裝在CentOS 7(與python2.7併存)與安裝python虛擬環境

[記錄] python 3.x版安裝在CentOS 7(與python2.7併存)與安裝python虛擬環境

最近常常在多個環境中要建置python多版本相容的環境,主因是我們的專案是3.5版,但linux原生已經有2.7版本

$ wget https://www.python.org/ftp/python/3.5.x/Python-3.5.x.tgz

$ tar xzf Python-3.5.1.tgz
cd Python-3.5.1
./configure
make

$ sudo make altinstall
這個時候,我們可能都要安裝一些必要的套件,遇到套件相依的問題,我建議要安裝virtualenv

通常透過pip就可以進行安裝,只是若我們沒有root的權限的話,而sudo又認不得pip指令時(command not found)怎麼辦呢?

常見錯誤:PermissionError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.5/site-packages/virtualenv.py’

 

以下一個解法提供記錄:

1.切換到user的home目錄~/

cd ~

2.編輯.bashrc檔

sudo nano ~/.bashrc

3.在最下面alias區塊貼上,python版本路徑依個人安裝狀況調整:

alias python3=’/usr/local/bin/python3.5′
alias pip3=’/usr/local/bin/pip3.5′
alias sudo=’sudo ‘

4.使alias變更生效

source .bashrc

 

透過virtualenv建立虛擬環境

PS..有些人可能會問,我們統一指定3.5版本了,為什麼還是要安裝虛擬環境呢?

我的想法主要是至少要將開發環境、測試環境、正式環境盡可能獨立。

開發的時候,像是可能會要嘗試新的套件安裝了新的函式庫或是導入ai模組套件等等

或是當我們必須handle不同版本的產品程式碼時,環境的一致性對於重現問題是有助於我們專注在產品程式碼本身的焦點上!

因此無論如何,都建議安裝!!這是個好習慣!

  1. sudo pip3 install virtualenv
  2. 在專案所存存的目錄(e.g. /home/user/projects/) 執行 $ virtualenv -p python3.5 xxxxxx
  3. 啟用 source xxxxxx/bin/activate

這樣,就可以用虛擬環境安裝好獨立的套件囉…

 

其中我有遇到在virtualenv安裝requirement.txt時,出現

Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-vozt3r98/mysqlclient/

若你在centos的話,可以透過安裝mysql dev套件到linux上解決這個問題

yum install mariadb-devel

若是在Ubuntu的話,請參考之

apt-get install libmariadbclient-dev

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *