1. 程式人生 > 實用技巧 >CentOS 7上配置Python3環境

CentOS 7上配置Python3環境

CentOS是國內公司常用的Linux發行版,但預設的Python只有2.7版本(我使用的CentOS 7.8),想使用Python3需要自己安裝。

通過yum安裝

這個是最省心的,但是不夠靈活,不能選擇版本。
yum install python3

通過原始碼編譯

如果要選擇特定的版本,那麼我們最好從原始碼來進行編譯。

  1. 首先訪問官網並選擇所需版本的原始碼下載,放置在/opt目錄下。
cd /opt
wget --no-check-certificate https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
  1. 解壓
tar xzvf Python-3.7.2.tgz
  1. 有可能你需要安裝編譯過程中所需的工具
yum groupinstall 'Development tools'
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libffi-devel
  1. 開始編譯,位置為/usr/local/python3.7
cd Python-3.7.2/
./configure --prefix=/usr/local/python3.7 --enable-optimizations
make && make install
  1. 新增軟連結,這樣可以在任意路徑下執行python3或python3.7來呼叫
ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3.7
  1. 看環境需要,修改python源
pip install pip -U   # 如果下面的config命令失敗,可能是因為pip版本太低不支援config,那麼需要先升級pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config list
  1. 安裝並配置虛擬環境
pip3 install virtualenv
pip3 install virtualenvwrapper
vim ~/.bashrc

VIRTUALENVWRAPPER_PYTHON=/usr/local/python3.7/bin/python3.7    # 指定virtualenvwrapper執行的python版本
export WORKON_HOME=$HOME/.virtualenvs                          # 指定虛擬環境存放目錄,.virtualenvs目錄名可自擬
source /usr/local/bin/virtualenvwrapper.sh                     # virtualenvwrapper.sh所在目錄

source ~/.bashrc

  1. 建立並使用虛擬環境,指定版本為python3
mkvirtualenv --python=/usr/bin/python3 my_env    # 建立虛擬環境
workon my_env                                    # 切換到某個虛擬環境
pip install -r requirements.txt                  # 安裝依賴
deactivate 				         # 退出當前虛擬環境
rmvirtualenv my_env 	                         # 刪除某個虛擬環境
lsvirtualenv 			                 # 列出所有虛擬環境
cdvirtualenv 			                 # 進入到虛擬環境所在的目錄

如果需要把/usr/bin/python 符號連結改為指向 /usr/bin/python3,會導致yum無法使用。
因為因為yum預設使用的python2,可以修改兩個檔案,/usr/libexec/urlgrabber-ext-down和/usr/bin/yum,開頭的一行 #!/usr/bin/pyhon 為 #!/usr/bin/python2 讓yum正常使用。

通過conda安裝

沒有用過這個方法,給出官方文件供參考。