由于寫了個(gè)爬蟲腳本,需要放到服務(wù)器中運(yùn)行。之前一直在Ubuntu系統(tǒng)中安裝多Python環(huán)境,而CentOS系統(tǒng)的安裝步驟略微有些出入,故詳細(xì)記錄下這幾天趟過(guò)的坑。
說(shuō)明
- 本文的系統(tǒng)命令一般會(huì)在語(yǔ)句前加上
$號(hào),以區(qū)分系統(tǒng)命令及其他內(nèi)容。輸入命令時(shí),無(wú)需輸入$號(hào)。
$ yum install vim
- 本文系統(tǒng)輸出的信息,會(huì)在前面加上
>>號(hào)。
$ which python
>> /usr/bin/python # 系統(tǒng)輸出的信息
- 本文的系統(tǒng)命令都是在root賬號(hào)下執(zhí)行的,假如非root賬號(hào)執(zhí)行,提示沒(méi)有權(quán)限,可在命令前加
sudo。
$ yum install vim #root賬號(hào)下執(zhí)行命令
$ sudo yum install vim #非root賬號(hào)下執(zhí)行管理員權(quán)限命令,需在命令前加`sudo`
- 安裝環(huán)境
系統(tǒng)版本:CentOS 7.4(自帶Python2.7)
安裝版本:Python3.6
安裝插件:virtualenv、virtualenvwrapper
一、安裝Python3
由于CentOS7原本就安裝了Python2,而且這個(gè)Python2不能被刪除,因?yàn)橛泻芏嘞到y(tǒng)命令,比如yum都要用到。所以我們要額外安裝Python3,而且系統(tǒng)一般允許多個(gè)版本的python同時(shí)存在。
我們先來(lái)查看python安裝位置,一般是位于/usr/bin/python目錄下。
$ which python
>> /usr/bin/python
下面介紹安裝Python3的方法:
1. 安裝依賴包(切記安裝)
$ yum -y groupinstall "Development tools"
$ yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2.下載Python3安裝包
大家可根據(jù)自己需求下載不同版本的Python3,我下載的是Python3.6.2
$ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
3. 新建python3存放目錄
$ mkdir /usr/local/python3
4. 安裝Python3
解壓壓縮包,進(jìn)入解壓目錄,指定安裝目錄,安裝Python3。
$ tar -xvJf Python-3.6.2.tar.xz
$ cd Python-3.6.2
$ ./configure --prefix=/usr/local/python3
# 安裝python3.7以上版本,需要先安裝新的包 > yum install libffi-devel -y
$ make && make install
安裝Python3時(shí),會(huì)自動(dòng)安裝pip。假如沒(méi)有,需要自己手動(dòng)安裝。
$ yum -y install python-pip
5. 創(chuàng)建軟鏈接
$ ln -s /usr/local/python3/bin/python3 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
6. 安裝完成,輸入python3測(cè)試

二、創(chuàng)建虛擬環(huán)境
virtualenv是一個(gè)可以在同一計(jì)算機(jī)中隔離多個(gè)python版本的工具。有時(shí),兩個(gè)不同的項(xiàng)目可能需要不同版本的python,如 python2.7 / python3.6 ,但是如果都裝到一起,經(jīng)常會(huì)導(dǎo)致問(wèn)題。virtualenv能夠用于創(chuàng)建獨(dú)立的Python虛擬環(huán)境,多個(gè)Python相互獨(dú)立,互不影響。
virtualenvwrapper這個(gè)軟件包可以讓我們管理虛擬環(huán)境變得更加簡(jiǎn)單。不用再跑到某個(gè)目錄下通過(guò)virtualenv來(lái)創(chuàng)建虛擬環(huán)境,并且激活的時(shí)候也要跑到具體的目錄下去激活。
下面介紹安裝python虛擬環(huán)境的方法:
使用pip安裝包前,先更新pip。
$ pip3 install --upgrade pip
1. 安裝virtualenv、virtualenvwrapper
$ pip3 install virtualenv
$ pip3 install virtualenvwrapper
2. 進(jìn)入.bashrc文件中,定義virtualenvwrapper路徑
使用vim編輯.bashrc文件
$ vim ~/.bashrc
在文末填入以下代碼并保存
VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3 # 指定virtualenvwrapper執(zhí)行的python版本
export WORKON_HOME=$HOME/.virtualenvs # 指定虛擬環(huán)境存放目錄,.virtualenvs目錄名可自擬
source /usr/local/bin/virtualenvwrapper.sh # virtualenvwrapper.sh所在目錄
3. 運(yùn)行.bashrc文件
$ source ~/.bashrc
4. 創(chuàng)建虛擬環(huán)境
$ mkvirtualenv py3-env
也可指定虛擬環(huán)境的python版本
$ mkvirtualenv --python=/usr/bin/python3 py3-env
5. 進(jìn)入虛擬環(huán)境中,然后進(jìn)入到項(xiàng)目所在目錄,安裝好相應(yīng)的包(如無(wú)需要,可跳過(guò)此步)
$ pip install -r requirements.txt
附:自動(dòng)生成項(xiàng)目安裝包的依賴文件
$ pip freeze > requirements.txt
虛擬環(huán)境搭建完成!
常見(jiàn)的virtualenvwrapper命令
- 創(chuàng)建虛擬環(huán)境
$ mkvirtualenv my_env
- 切換到某個(gè)虛擬環(huán)境
$ workon my_env
- 退出當(dāng)前虛擬環(huán)境
$ deactivate
- 刪除某個(gè)虛擬環(huán)境
$ rmvirtualenv my_env
- 列出所有虛擬環(huán)境
$ lsvirtualenv
- 進(jìn)入到虛擬環(huán)境所在的目錄
$ cdvirtualenv
三、異常情況
- 假如
source ~/.bashrc時(shí),提示以下錯(cuò)誤
$ source ~/.bashrc
>> -bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
【原因】
.bashrc文件中的virtualenvwrapper.sh所在目錄錯(cuò)誤。
【解決方案】
①查找virtualenvwrapper.sh所在目錄
$ find / -name "virtualenvwrapper.sh"
>> /usr/local/python3/bin/virtualenvwrapper.sh
②把.bashrc文件的virtualenvwrapper.sh目錄更改為實(shí)際所在目錄
source /usr/local/python3/bin/virtualenvwrapper.sh # virtualenvwrapper.sh實(shí)際所在目錄
- 假如創(chuàng)建虛擬環(huán)境時(shí),提示以下錯(cuò)誤
$ mkvirtualenv my_env
>> ERROR: virtualenvwrapper could not find virtualenv in your path
【解決方案】
①查找virtualenv所在目錄
$ find / -name "virtualenv"
>> /usr/local/python3/bin/virtualenv
②創(chuàng)建軟鏈接
$ ln -s /usr/local/python3/bin/virtualenv /usr/local/bin/virtualenv
參考文章:
https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=zzzv1zqj
https://www.cnblogs.com/FZfangzheng/p/7588944.html
https://blog.csdn.net/mbl114/article/details/78089741
https://stackoverflow.com/questions/31274642/error-virtualenvwrapper-could-not-find-virtualenv-in-your-path
https://blog.csdn.net/qq_36416904/article/details/79316972
云服務(wù)器低至0.95折,馬上領(lǐng)用>>
商標(biāo)注冊(cè)服務(wù)低至680元>>
全民加速節(jié)CDN低至5.5折>>