如何避免多版本python沖突——建立python3虛擬環(huán)境

一、為什么不直接在服務(wù)器部署python3

因?yàn)閏entos6.5系統(tǒng)自帶python2.6,如果直接安裝python3,會(huì)造成有些自帶的腳本無(wú)法運(yùn)行,比如yum,所以為避免這種情況的發(fā)生,可以先安裝anaconda2,通過(guò)建立python3的虛擬環(huán)境,來(lái)解決這一問(wèn)題

二、服務(wù)器安裝anaconda2的方法

1、首先安裝bzip2(如果已安裝請(qǐng)忽略,如何安裝可鍵入bunzip2自查)

2、下載對(duì)應(yīng)版本的anaconda軟件包(根據(jù)自己系統(tǒng)來(lái)定)

三、建立虛擬環(huán)境

1、建立和啟動(dòng)虛擬環(huán)境

conda create -n XXX python=3.5

安裝成功后就可以在你所安裝的anaconda2目錄下的envs下看到啦

source activate XXX

啟動(dòng)你創(chuàng)建的虛擬環(huán)境

2、未聯(lián)網(wǎng)情況下的服務(wù)器如何快速創(chuàng)建虛擬環(huán)境


在一臺(tái)聯(lián)網(wǎng)的服務(wù)器上新建一虛擬環(huán)境,在上面將你所需要的所有包安裝好,然后打包丟到未聯(lián)網(wǎng)的服務(wù)器的envs路徑下,就完成啦~

3、聯(lián)網(wǎng)情況下如何快速安裝所有包和依賴(lài)包

首先,先啟動(dòng)已經(jīng)能夠順利使用的虛擬環(huán)境,然后運(yùn)行pip freeze >requirements.txt,這時(shí)候,在當(dāng)前目錄就已經(jīng)生成一個(gè)名為requirements.txt的文件,里面就含有此環(huán)境下所安裝的所有的包。


然后如果另外一臺(tái)(你即將安裝)服務(wù)器是聯(lián)網(wǎng)的,那么直接將該文件傳上去,直接pip install -r requirements.txt就可以啦。如果未聯(lián)網(wǎng),要么就是安裝上面2的方法,要么就一個(gè)一個(gè)把包下載下來(lái)去安裝,都是可以的。

四、如果將用python3代碼編輯好的文件,在服務(wù)器上自動(dòng)調(diào)度

因?yàn)樽詣?dòng)調(diào)度的時(shí)候,如果沒(méi)有特殊指定,肯定是會(huì)啟動(dòng)python2而不是python3來(lái)跑文件,自然會(huì)報(bào)錯(cuò),我目前知道的有兩個(gè)方法可以解決這個(gè)問(wèn)題。

1、指定解析器及解析器所在位置

我們創(chuàng)建python文件的時(shí)候,一般/可能會(huì)出現(xiàn)這么兩行代碼,那么第一行就是我們要改的地方。


將第一行的解析位置設(shè)定為虛擬環(huán)境中python的所在位置,如下,便是:

#! /root/anaconda2/envs/lib_bak/bin/python


這樣就好啦

2、運(yùn)行時(shí)指定python位置

我們?cè)诜?wù)器運(yùn)行python腳本時(shí),一般為:python XXX.py

這時(shí)候是自動(dòng)啟動(dòng)python自帶python的,所以我們同樣可以用上面1步驟說(shuō)到的改變路徑來(lái)完成,直接/root/anaconda2/envs/lib_bak/bin/python XXX.py就可以啦。

3、注意

一般最好將上述文檔寫(xiě)成sh文件再自動(dòng)調(diào)度,不然會(huì)出現(xiàn)莫名其妙的報(bào)錯(cuò)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容