linux下python多版本環(huán)境設(shè)置(數(shù)據(jù)科學(xué)研究依賴環(huán)境安裝)

linux下python多版本環(huán)境設(shè)置(數(shù)據(jù)科學(xué)研究依賴環(huán)境安裝)
經(jīng)常遇到這樣的情況:
系統(tǒng)自帶的Python是2.6涨共,自己需要Python 2.7中的某些特性概行;
系統(tǒng)自帶的Python是2.x驱显,自己需要Python 3.x腕够;
此時(shí)需要在系統(tǒng)中安裝多個(gè)Python衡瓶,但又不能影響系統(tǒng)自帶的Python,即需要實(shí)現(xiàn)Python的多版本共存末患。
pyenv就是這樣一個(gè)Python版本管理器研叫,除此之外,還可以使用virtualenv創(chuàng)建獨(dú)立的純凈虛擬環(huán)境

一璧针、pyenv安裝

使用vm虛擬機(jī)安裝centos7系統(tǒng)
1)默認(rèn)安裝方式使用NAT網(wǎng)絡(luò)連接方式 確認(rèn)IP后可以直接實(shí)現(xiàn)宿主機(jī)和虛擬機(jī)的互聯(lián)嚷炉,也能直接連接互聯(lián)網(wǎng)
2)在centos安裝配置界面中的軟件選擇界面,需要選擇帶有GHOME界面的配置探橱,否則安裝后的系統(tǒng)是不帶界面的申屹,使用不便

1.相關(guān)依賴軟件安裝

1)安裝GCC
yum install gcc
2)安裝git,需要用git獲取pyenv的代碼
yum -y install git
3)其他工具依賴
yum install -y readline readline-devel readline-static openssl openssl-devel openssl-static sqlite-devel bzip2-devel bzip2-libs

2.pyenv獲取及配置

1)獲取pyenv,安裝位置選擇在root根目錄下,使用.隱藏目錄走搁,并設(shè)置環(huán)境變量独柑。這里設(shè)置為root用戶可用了迈窟,其實(shí)可以基于其他用戶clone一份自己用的獨(dú)立環(huán)境
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
2)設(shè)置相關(guān)環(huán)境變量私植,使pyenv生效

echo 'export PYENV_ROOT="/root/.pyenv"' >>  ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

二、pyenv的使用

1.安裝不同版本的python

pyenv install --list #查看可安裝的python版本
pyenv install 3.6.5  #安裝python3.6.5
pyenv uninstall 3.6.5 #卸載python3.6.5

補(bǔ)充:網(wǎng)絡(luò)問題導(dǎo)致安裝緩慢或無(wú)法進(jìn)行

如anaconda之類大容量的版本车酣,由于網(wǎng)絡(luò)的問題曲稼,總是連接中斷,安裝失敗湖员。此時(shí)可以先從官方網(wǎng)站下載安裝包贫悄,然后放在~/.pyenv/cache文件中(注意cache是個(gè)文件),然后執(zhí)行pyenv install 此版本娘摔,pyenv會(huì)自動(dòng)先從此文件夾中搜索

wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz
cp Python-2.7.15.tar.xz  ~/.pyenv/cache
pyenv install 2.7.15

2.更新pyenv

安裝完之后窄坦,需要更新一下才能看到已經(jīng)安裝的版本

pyenv rehash
pyenv versions #查看已經(jīng)安裝好的版本,帶*號(hào)的為當(dāng)前使用的版本

3.選擇版本

pyenv global 3.6.5 #設(shè)置全局版本,即系統(tǒng)使用的將是此版本
這樣在任意目錄下執(zhí)行python命令進(jìn)入的都是3.6.5環(huán)境
pyenv local 2.7.15 #當(dāng)前目錄下的使用版本鸭津,有點(diǎn)類似virtualenv
在當(dāng)前目錄下執(zhí)行 python 進(jìn)入的都是2.7.15環(huán)境
pyenv global system #重新設(shè)置全局版本為系統(tǒng)的版本
而除了root用戶(設(shè)置pyenv的用戶)外,其他用戶使用的仍是系統(tǒng)默認(rèn)的2.7.5版本的python

三彤侍、virtualenv安裝及使用

1.python virtualenv安裝

可以直接使用pip安裝virtualenv也行,但是通過pyenv插件的形式安裝virtualenv的虛擬環(huán)境更加方便逆趋。

git clone https://github.com/pyenv/pyenv-virtualenv.git
cd pyenv-virtualenv/
./install.sh

安裝virtualenv插件盏阶,安裝在主文件夾下的.pyenv文件夾中。

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
./install.sh

2.創(chuàng)建虛擬環(huán)境

創(chuàng)建一個(gè)2.7.15的虛擬環(huán)境

pyenv virtualenv 2.7.15 py27
source ~/.bash_profile #執(zhí)行這一步使當(dāng)前用戶環(huán)境都使用這個(gè)virtualenv環(huán)境

這條命令在本機(jī)上創(chuàng)建了一個(gè)名為env271的python虛擬環(huán)境闻书,這個(gè)環(huán)境的真實(shí)目錄位于:~/.pyenv/versions/
注意名斟,命令中的 ‘2.7.15’ 必須是一個(gè)安裝前面步驟已經(jīng)安裝好的python版本, 否則會(huì)出錯(cuò)魄眉。
可以通過pyenv versions 命令來(lái)查看當(dāng)前的虛擬環(huán)境砰盐,列表中有一個(gè) py27。

3.切換和使用新的python虛擬環(huán)境:

執(zhí)行以下命令
pyenv activate py27
就能切換為py27這個(gè)版本的虛擬環(huán)境坑律。
通過輸入python --version查看現(xiàn)在版本楞卡,可以發(fā)現(xiàn)處于虛擬環(huán)境下了。
如果要切換回系統(tǒng)環(huán)境脾歇, 運(yùn)行這個(gè)命令即可
pyenv deactivate
刪除這個(gè)虛擬環(huán)境,只要直接刪除它所在的目錄就好:
rm -rf ~/.pyenv/versions/py27/
或者使用卸載命令:
pyenv uninstall py27

四蒋腮、jupyter notebook 安裝

1.安裝數(shù)據(jù)科學(xué)依賴的軟件

yum install bzip2 -y
yum groupinstall "Development Tools" -y

2.使用pyenv進(jìn)入python3.6.5環(huán)境

在python3環(huán)境下實(shí)現(xiàn)數(shù)據(jù)科學(xué)的框架搭建

pyenv local 3.6.5
python --version
pip install ipython jupyter notebook

3.jupyter配置

jupyter安裝完成后,驗(yàn)證命令是否可用并生成一個(gè)jupyter的配置文件藕各。(確保pyenv環(huán)境正確)
jupyter notebook --generate-config

4.安全設(shè)置

為了比較安全的訪問服務(wù)器資源池摧,可以設(shè)置登錄密碼和設(shè)置https來(lái)實(shí)現(xiàn)安全登錄。有條件可以通過安全認(rèn)證中心來(lái)發(fā)放秘鑰和認(rèn)證激况。
首先打開ipython作彤,生成sha1的密碼,如下:

from notebook.auth import passwd
passwd()
#Enter password   sunline
#output sha1:5862585fb33e:afeb36aa85d02e0c37b0de7d7e6a4bc766e9fa6c

然后生成一個(gè)自簽名認(rèn)證的key乌逐,如下:
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout jkey.key -out jcert.pem
最后修改增加配置文件中的內(nèi)容:

vim /home/user/.jupyter/jupyter_notebook_config.py
c.NotebookApp.password = 'sha1:<your-sha1-hash-value>'
c.NotebookApp.port = 8888
c.NotebookApp.ip = '192.168.245.128'
c.NotebookApp.open_browser = False
c.NotebookApp.certfile = '/home/user/jcert.pem'
c.NotebookApp.keyfile = '/home/user/jkey.key'

5.jupyter notebook使用

由于jupyter使用的8888作為默認(rèn)端口竭讳,需要把端口給開放并重啟防火墻。執(zhí)行如下命令
firewall-cmd --zone=public --add-port=8888/tcp --permanent
然后重啟防火墻
systemctl restart firewalld.service
到這里所有的安裝和基本的設(shè)置都已經(jīng)完成浙踢,直接在命令行輸入:jupyter notebook.就可以啟動(dòng)進(jìn)程绢慢。

6.實(shí)現(xiàn)后臺(tái)運(yùn)行并輸出日志

創(chuàng)建start.sh 腳本內(nèi)容為

nohup  start.sh  >> output.log 2>&1 &
nohup  /root/jupyterNotebook/start.sh  >> /root/jupyterNotebook/output.log 2>&1 &
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市洛波,隨后出現(xiàn)的幾起案子胰舆,更是在濱河造成了極大的恐慌,老刑警劉巖蹬挤,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缚窿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡焰扳,警方通過查閱死者的電腦和手機(jī)倦零,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門误续,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人扫茅,你說(shuō)我怎么就攤上這事女嘲。” “怎么了诞帐?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵欣尼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我停蕉,道長(zhǎng)愕鼓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任慧起,我火速辦了婚禮菇晃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚓挤。我一直安慰自己磺送,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布灿意。 她就那樣靜靜地躺著估灿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缤剧。 梳的紋絲不亂的頭發(fā)上馅袁,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音荒辕,去河邊找鬼汗销。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抵窒,可吹牛的內(nèi)容都是我干的弛针。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼李皇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼削茁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起疙赠,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤付材,失蹤者是張志新(化名)和其女友劉穎朦拖,沒想到半個(gè)月后圃阳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡璧帝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年捍岳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锣夹,死狀恐怖页徐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情银萍,我是刑警寧澤变勇,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站贴唇,受9級(jí)特大地震影響搀绣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜戳气,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一链患、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓶您,春花似錦麻捻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至夜赵,卻和暖如春崖咨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背油吭。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工击蹲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婉宰。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓歌豺,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親心包。 傳聞我的和親對(duì)象是個(gè)殘疾皇子类咧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容