日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何在Python中創(chuàng)建和使用虛擬環(huán)境

如何在python中創(chuàng)建和使用虛擬環(huán)境

作者: HexUp 2021-10-28 19:08:29

云計(jì)算

虛擬化 Python中的虛擬環(huán)境是一個(gè)很有用的功能,可以建立多個(gè)互不干擾的空間,每個(gè)空間中安裝的包都是相互獨(dú)立的。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、徐匯網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)公司、徐匯網(wǎng)絡(luò)營(yíng)銷(xiāo)、徐匯企業(yè)策劃、徐匯品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供徐匯建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

前兩天收到公司郵件,說(shuō)在我的電腦上發(fā)現(xiàn)了anaconda的進(jìn)程,商業(yè)軟件需要付費(fèi),為了軟件合規(guī),讓我卸載掉。我就借這個(gè)機(jī)會(huì)寫(xiě)個(gè)簡(jiǎn)單的教程。

Anaconda是一個(gè)Python的發(fā)行版 ,主要集中在科學(xué)計(jì)算的用途上,主要有三點(diǎn)優(yōu)勢(shì):

  • 打包了很多科學(xué)計(jì)算的常用庫(kù),比如numpy
  • 開(kāi)發(fā)了conda這個(gè)環(huán)境管理工具,可以很方便地創(chuàng)建虛擬環(huán)境,管理多個(gè)Python版本,同時(shí)安裝conda維護(hù)的庫(kù)
  • 維護(hù)了很多科學(xué)計(jì)算相關(guān)的庫(kù),而且都是編譯好的二進(jìn)制庫(kù),相比于pip的庫(kù),有時(shí)候更加方便,比如conda會(huì)幫你把很多c語(yǔ)言的庫(kù)編譯好直接裝,很省事

我上網(wǎng)搜了一下,Anaconda確實(shí)變更了他們的授權(quán)政策,之前個(gè)人版可以用作商業(yè)用途,現(xiàn)在不行了。大規(guī)模商業(yè)公司的用戶必須得繳費(fèi),小規(guī)模的商業(yè)用途仍然可以使用個(gè)人版(200人以下)。

我估摸著這個(gè)公司其實(shí)查的也沒(méi)有那么嚴(yán),屬于睜一只眼閉一只眼,甚至是睜一只眼閉九只眼的狀態(tài),但是公司為了完全合規(guī)還是讓我們卸載掉了這個(gè)軟件。

(話說(shuō)為什么不能出錢(qián)給我們買(mǎi)?)

其實(shí)Anaconda倒不是因?yàn)檐浖召M(fèi),他收費(fèi)的主要對(duì)象是conda包的在線服務(wù),也就是你從他們的服務(wù)器上下載庫(kù)的話收費(fèi),單單使用conda這個(gè)軟件并不收費(fèi)。

然而,我用conda的場(chǎng)景偏偏就需要從他們的服務(wù)器上下載包,因?yàn)槲抑饕褪枪芾矶鄠€(gè)python版本,這個(gè)是需要下載二進(jìn)制文件的。

所以,雖然但是,我還是在不舍中卸載了,然后開(kāi)始尋找替代方案。

結(jié)論是:

  • 如果只需要使用一個(gè)版本的Python,但是需要多個(gè)虛擬環(huán)境,用venv
  • 如果需要用到多個(gè)版本的Python和虛擬環(huán)境,并且可以方便來(lái)回切換,用pyenv

Python中的虛擬環(huán)境是一個(gè)很有用的功能,可以建立多個(gè)互不干擾的空間,每個(gè)空間中安裝的包都是相互獨(dú)立的。之所以有這個(gè)需求,是因?yàn)椴煌能浖蕾嚨陌陌姹臼遣灰粯拥摹?/p>

比如,你有一套源代碼依賴TensorFlow 1.0和python3.5,然后你又下載了別人的源代碼,依賴TensorFlow 2.0和python3.6,如果沒(méi)有虛擬環(huán)境就很麻煩,因?yàn)镻ython不能安裝不同版本的庫(kù)到同一個(gè)環(huán)境中。但是你可以創(chuàng)建兩個(gè)不同的Python環(huán)境,這個(gè)時(shí)候就能完美運(yùn)行兩套代碼,互不干涉了。

下面稍微寫(xiě)一下conda pyenv venv的基本使用教程。

conda

用conda創(chuàng)建虛擬環(huán)境的命令如下

conda create -n new_env python=3.8 numpy

其中-n new_env的意思是指定新環(huán)境的名字,這里叫new_env,python=3.8是指定python的版本,numpy是指創(chuàng)建環(huán)境的時(shí)候你想安裝的包,可以寫(xiě)不止一個(gè),也可以不寫(xiě),等到創(chuàng)建完成了再安裝。

創(chuàng)建完成之后,你可以通過(guò)conda activate來(lái)激活某個(gè)環(huán)境

conda activate new_env

conda的環(huán)境默認(rèn)都是安裝在anaconda的根目錄下面,比如我的anaconda安裝在/home/user/anaconda下,那么剛剛的環(huán)境就在home/user/anaconda/envs/new_env中

conda的優(yōu)勢(shì)在于,可以選擇python版本,而且不管是不同版本的Python解釋器,還是對(duì)應(yīng)的包,他提供都是編譯好的二進(jìn)制文件,下載下來(lái)就可以直接用,不用自己編譯。用pyenv也能管理多個(gè)版本,但是需要自己編譯,雖然自己編譯更自由,但是也需要更多技巧。

conda的缺點(diǎn)是,依賴計(jì)算很慢,所以安裝會(huì)更久,而且網(wǎng)絡(luò)對(duì)國(guó)內(nèi)用戶不太友好。

venv

venv的用法很簡(jiǎn)單

python3 -m venv my-env

這樣就創(chuàng)建完成了一個(gè)新虛擬環(huán)境,叫my-env,跟conda不同的是,這個(gè)my-env是放在你運(yùn)行這條命令的目錄下面。

創(chuàng)建完成之后,還需要激活,運(yùn)行下面的命令激活

source my-env/bin/activate

venv的局限性在于,只能用當(dāng)前的Python版本

pyenv

pyenv可以用來(lái)管理多個(gè)python環(huán)境,用起來(lái)比conda稍微復(fù)雜一點(diǎn)點(diǎn)。

麻煩在哪呢?它需要下載Python的源代碼自己編譯,而conda都是下載好的二進(jìn)制,可以直接用。我用pyenv安裝python3.6的時(shí)候就遇到了編譯錯(cuò)誤,然后設(shè)置了build flag才解決。

安裝某個(gè)版本:pyenv install 3.6.15

設(shè)置默認(rèn)版本:pyenv global 3.6.15

裝完之后就能再配合venv創(chuàng)建虛擬環(huán)境了。

pyenv其實(shí)自帶了一個(gè)virtualenv命令,類似于conda,可以在創(chuàng)建虛擬環(huán)境的時(shí)候指定版本,比如

pyenv virtualenv 3.6.15 new_env

但是需要你先安裝對(duì)應(yīng)版本的python。

以上基本上就涵蓋了Python創(chuàng)建和使用虛擬環(huán)境的幾種方法。


網(wǎng)頁(yè)名稱:如何在Python中創(chuàng)建和使用虛擬環(huán)境
網(wǎng)站URL:http://www.dlmjj.cn/article/dhidhoj.html