自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[431838]]

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

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

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

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

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

(話說為什么不能出錢給我們買?)

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

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

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

結(jié)論是:

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

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

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

下面稍微寫一下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)境的時候你想安裝的包,可以寫不止一個,也可以不寫,等到創(chuàng)建完成了再安裝。

創(chuàng)建完成之后,你可以通過conda activate來激活某個環(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)勢在于,可以選擇python版本,而且不管是不同版本的Python解釋器,還是對應(yīng)的包,他提供都是編譯好的二進(jìn)制文件,下載下來就可以直接用,不用自己編譯。用pyenv也能管理多個版本,但是需要自己編譯,雖然自己編譯更自由,但是也需要更多技巧。

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

venv

venv的用法很簡單

python3 -m venv my-env

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

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

source my-env/bin/activate

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

pyenv

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

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

安裝某個版本:pyenv install 3.6.15

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

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

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

pyenv virtualenv 3.6.15 new_env

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

 

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

 

責(zé)任編輯:武曉燕 來源: HexUp
相關(guān)推薦

2021-09-18 08:00:00

Python系統(tǒng)開發(fā)

2023-06-01 15:37:11

PyCharm工具開發(fā)

2021-11-15 05:44:16

Python虛擬環(huán)境開發(fā)

2019-07-11 16:20:22

MacOSPython

2020-07-06 07:00:21

PyCharm虛擬環(huán)境

2021-03-04 20:46:32

virtualenvwPython虛擬環(huán)境

2012-11-30 16:02:57

在vSphereiSCSI存儲虛擬化

2021-03-01 08:00:00

Linux開發(fā)虛擬環(huán)境

2021-02-18 17:00:52

Linux歸檔文件

2016-04-12 10:12:53

2019-09-16 11:40:49

Linux交換文件

2021-07-30 20:25:04

pipxPython編程語言

2023-05-05 16:37:13

CPU 性能虛擬環(huán)境虛擬化

2018-04-26 09:30:54

LinuxLVM交換分區(qū)

2019-07-02 06:31:27

Python虛擬環(huán)境代碼

2022-09-08 10:40:16

Linux Mint工作區(qū)程序

2017-01-06 09:57:08

AppSenseLANDesk桌面

2013-08-16 11:17:35

虛擬桌面虛擬快照

2021-08-13 08:42:48

Python 編程技巧poetry

2009-12-29 10:50:47

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號