国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

為什么你的python版本一團(tuán)糟?因?yàn)樯倭诉@個(gè)操作

ThreeWords / 2097人閱讀

摘要:坑人的版本的版本問(wèn)題一直是個(gè)廣被吐槽的黑點(diǎn)。這些版本的沖突在開(kāi)發(fā)中十分常見(jiàn),而和的版本差異又加劇了這一問(wèn)題。從而避免與其他版本發(fā)生干擾。

坑人的版本

Python 的版本問(wèn)題一直是個(gè)廣被吐槽的黑點(diǎn)。以至于有人調(diào)侃說(shuō):

Python 是世界上最好的兩種語(yǔ)言!

在這里我要說(shuō)明下,對(duì)于初學(xué)者來(lái)說(shuō),版本間的語(yǔ)法差異其實(shí)并不大。現(xiàn)在剛開(kāi)始學(xué) Python 的人,放心大膽地 用最新版本 即可。業(yè)內(nèi)所詬病的,主要是針對(duì)代碼上的不兼容。

但平心而論,版本間的兼容問(wèn)題并不是 Python 所獨(dú)有。且就算 Python 只有一個(gè)版本,第三方庫(kù)的版本一樣會(huì)讓人抓狂。

比如說(shuō),你之前在電腦上用 Python 寫(xiě)了一個(gè)網(wǎng)站,使用了 django 框架,版本是 1.11。過(guò)了一年,你要開(kāi)發(fā)一個(gè)新網(wǎng)站,這時(shí)候 django 已經(jīng)發(fā)展到了 2.0 版本,你是用還是不用?更新了版本,電腦上的老網(wǎng)站代碼就無(wú)法執(zhí)行了。

或者,你安裝并使用了某個(gè)模塊 A 的最新版本。然后另一個(gè)項(xiàng)目用到的模塊 B,B 的代碼卻依賴于模塊 A 較早的版本。這種情況下,你甚至可能都無(wú)法成功安裝模塊 B。

這些版本的沖突在開(kāi)發(fā)中十分常見(jiàn),而 Python 2 和 3 的版本差異又加劇了這一問(wèn)題。

對(duì)此,早已有了成熟的解決方案:

虛擬環(huán)境

Python 開(kāi)發(fā)中所謂的 虛擬環(huán)境 ,就是為 Python 版本及第三方庫(kù)創(chuàng)建獨(dú)立的開(kāi)發(fā)環(huán)境,使不同項(xiàng)目之間互不干擾。借助于虛擬環(huán)境,我們可以在同一臺(tái)電腦上構(gòu)建出項(xiàng)目 A 在基于 Python 2 的環(huán)境中運(yùn)行,而項(xiàng)目 B 可以在基于 Python 3 的環(huán)境中運(yùn)行。

虛擬環(huán)境需要通過(guò)一些工具創(chuàng)建,常見(jiàn)的幾種:

1, virtualenv 。這是 Python 最為常用的虛擬環(huán)境工具,簡(jiǎn)單有效,我自己就用它。本文稍后部分會(huì)介紹下基本的安裝和使用。網(wǎng)上也有相當(dāng)多的使用教程。

virtualenv 的一個(gè)局限是無(wú)法統(tǒng)一管理你電腦上的所有虛擬環(huán)境,因此環(huán)境多了之后,可能會(huì)遺漏,或造成冗余。對(duì)此,有一個(gè)擴(kuò)展工具 virtualenvwrapper ,能幫你統(tǒng)一管理各個(gè)環(huán)境。

2, venv 。它的實(shí)現(xiàn)很大程度基于 virtualenv,使用方法也很類似。而 Python 現(xiàn)已內(nèi)置了 venv。

3, conda 。這個(gè)工具相當(dāng)于 pip + virtualenv + virtualenvwrapper ,它不僅能創(chuàng)建和管理虛擬環(huán)境,本身還是一個(gè)包管理器,可以下載安裝第三方庫(kù)。功能完善,使用也不復(fù)雜。著名的數(shù)據(jù)分析開(kāi)發(fā)包 anaconda 里就默認(rèn)使用 conda 作為環(huán)境和模塊管理工具。

接下來(lái)我們簡(jiǎn)要介紹下:

virtualenv 的使用

安裝

在系統(tǒng)命令行通過(guò) pip 或者 easy_install 安裝即可:


pip install virtualenv

如果你的命令行無(wú)法執(zhí)行 python、pip 及后續(xù)的 virtualenv 命令,請(qǐng)檢查你環(huán)境變量里的 PATH 路徑。(還不熟悉的請(qǐng)?jiān)诠娞?hào)回復(fù)關(guān)鍵字 安裝

創(chuàng)建

進(jìn)入到合適的目錄下(一般是項(xiàng)目根目錄,但不建議加入 git 倉(cāng)庫(kù)里提交),通過(guò) virtualenv 命令創(chuàng)建一個(gè)名為 MY_ENV 的環(huán)境(這個(gè)名字可自定義):


virtualenv MY_ENV

沒(méi)有報(bào)錯(cuò)的話,會(huì)成功創(chuàng)建目錄 MY_ENV,其中有一些目錄和文件,這就是我們的虛擬環(huán)境所在了。

激活

使用虛擬環(huán)境前,需要“激活”環(huán)境:

windows


MY_ENVScriptsactivate

linux


source MY_ENV/bin/activate

路徑根據(jù)你所在位置會(huì)有所不同,也可以使用完整路徑。

激活環(huán)境之后,命令行前面會(huì)用括號(hào)標(biāo)識(shí)出你所在的環(huán)境。這時(shí)候再通過(guò) pip 安裝第三方模塊,就不會(huì)影響到系統(tǒng)本身的 Python 環(huán)境。

關(guān)閉

當(dāng)不需要環(huán)境時(shí),可以通過(guò) deactivate 命令關(guān)閉。當(dāng)然,直接關(guān)掉命令行窗口也沒(méi)毛病。

指定 Python

虛擬環(huán)境的創(chuàng)建,默認(rèn)是使用 virtualenv 所在的那個(gè) Python 版本。如果你電腦上有多個(gè) Python,則可以指定環(huán)境的 Python 版本,例如:


virtualenv -p C:python27python.exe ENV27

虛擬環(huán)境的本質(zhì)

為什么簡(jiǎn)單幾行命令,就可以實(shí)現(xiàn) Python 環(huán)境的分離?本質(zhì)上靠的還是環(huán)境變量里的 PATH 路徑。

PATH 的作用,就是當(dāng)你執(zhí)行一個(gè)命令時(shí),系統(tǒng)要知道去哪里找這個(gè)命令。PATH 里有多個(gè)路徑,就按順序從前到后依次查找。執(zhí)行 python、pip 等命令時(shí),都是按照這個(gè)方式進(jìn)行。

通過(guò) echo 命令可以查看路徑:

windows

linux

當(dāng)版本出現(xiàn)混亂時(shí),往往就是 PATH 中有多個(gè)路徑,不同路徑中有含有相同的命令,以至于執(zhí)行了并非你預(yù)期的那個(gè)版本中的命令。比如你的 python 命令是在 python27 目錄下,而 pip 執(zhí)行的卻是 python36/Scripts 里的,然后就發(fā)生了“明明安裝成功了,程序里卻找不到”的情況。

而當(dāng)激活一個(gè)虛擬環(huán)境時(shí),就相當(dāng)于在 PATH 的開(kāi)頭增加了我們創(chuàng)建的目錄,使用這個(gè)目錄里的 Python 及相關(guān)庫(kù)。安裝新的庫(kù)也是裝在新建的這個(gè)目錄之下。從而避免與其他版本發(fā)生干擾。

如果你不清楚你所用的命令究竟是哪里的,可以在命令行中使用 where/which 命令查看:

PyCharm 里的虛擬環(huán)境

可能很多同學(xué)還不習(xí)慣用命令行,而是完全使用 IDE 來(lái)進(jìn)行配置。那么最后我特別提一下 PyCharm 的情況。

新版本的 PyCharm 默認(rèn)會(huì) 在創(chuàng)建項(xiàng)目時(shí)新建一個(gè)虛擬環(huán)境 ,因此不了解這個(gè)操作的同學(xué)會(huì)疑惑,命令行里用 pip 裝好的模塊為什么到 PyCharm 里就用不了了。簡(jiǎn)單的解決方法,就是從 PyCharm 的設(shè)置面板里安裝庫(kù)。

其他的可選方案:

建項(xiàng)目時(shí)不要選新建虛擬環(huán)境

建項(xiàng)目時(shí)選虛擬環(huán)境繼承已有的庫(kù)

建項(xiàng)目時(shí)選用命令行創(chuàng)建好的虛擬環(huán)境

建好項(xiàng)目后,在命令行激活對(duì)應(yīng)虛擬環(huán)境后再安裝庫(kù)

這些我在之前的文章 [[新手向視頻]新版PyCharm創(chuàng)建項(xiàng)目為什么會(huì)有問(wèn)題](http://zhuanlan.zhihu.com/p/3... 里也提過(guò), 查看 PyCharm 的上手教程,可在公眾號(hào)( Crossin的編程教室 )回復(fù)關(guān)鍵字 _pycharm_

以上就是關(guān)于虛擬環(huán)境的一些介紹,留個(gè)小作業(yè): 親自動(dòng)手創(chuàng)建一個(gè)虛擬環(huán)境,并在其中安裝一個(gè)第三方庫(kù)。

過(guò)程中有任何疑問(wèn),或想了解更多關(guān)于虛擬環(huán)境的配置,可以上我們的論壇 http:// bbs.crossincode.com 進(jìn)行討論。

下課!

════

其他文章及回答:

如何自學(xué)Python | 新手引導(dǎo) | 精選Python問(wèn)答 | Python單詞表 | 知乎下載器 | 人工智能 | 嘻哈 | 爬蟲(chóng) | 我用Python | 高考 | requests | AI平臺(tái)

歡迎搜索及關(guān)注: Crossin的編程教室

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42535.html

相關(guān)文章

  • Python數(shù)據(jù)科學(xué)環(huán)境:Anaconda 了解一下

    摘要:我自己印象最深的是在上安裝加密和科學(xué)計(jì)算模塊,折騰了很久。這個(gè)精裝是面向數(shù)據(jù)科學(xué)的,同時(shí)也保留了你自己進(jìn)一步改裝的空間。數(shù)據(jù)科學(xué)庫(kù)包環(huán)境管理工具,這幾樣就是的主要功能。 幾乎所有的 Python 學(xué)習(xí)者都遇到過(guò) 安裝 方面的問(wèn)題。這些安裝問(wèn)題包括 Python 自身環(huán)境的安裝、第三方模塊的安裝、不同版本的切換,以及不同平臺(tái)、版本間的兼容問(wèn)題 等。當(dāng)你因?yàn)檫@些問(wèn)題而卡殼,一行代碼沒(méi)寫(xiě)就已...

    shaonbean 評(píng)論0 收藏0
  • 代碼吃雞:Python-Robocode

    摘要:最近看到一個(gè)很有未來(lái)感的新聞一輛特斯拉在拉斯維加斯出了車禍,撞死了一個(gè)機(jī)器人。不知道是意外還是炒作,又或者是這位機(jī)器人故意碰瓷,反正人們也無(wú)法從受害者口中了解被特斯拉撞是怎樣一種體驗(yàn)了。像星際爭(zhēng)霸之類的經(jīng)典游戲都有過(guò)類似的比賽。 最近看到一個(gè)很有未來(lái)感的新聞: 一輛 特斯拉 在拉斯維加斯出了車禍,撞死了一個(gè)……emmmm……機(jī)器人。不知道是意外還是炒作,又或者是這位機(jī)器人故意碰瓷,反...

    yvonne 評(píng)論0 收藏0
  • 我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言?

    摘要:我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言這一切都取決于你想要完成的事情作為技術(shù)作家,我的任務(wù)是使復(fù)雜的主題易于理解,因此在本文中您將找不到太多技術(shù)術(shù)語(yǔ)。我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言這是我自出版之前收到的最常見(jiàn)的問(wèn)題。是一種后端語(yǔ)言。我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言? 這一切都取決于你想要完成的事情 作為技術(shù)作家,我的任務(wù)是使復(fù)雜的主題易于理解,因此在本文中您將找不到太多技術(shù)術(shù)語(yǔ)。我可以對(duì)面向?qū)ο蟮木?..

    huashiou 評(píng)論0 收藏0
  • 我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言?

    摘要:我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言這一切都取決于你想要完成的事情作為技術(shù)作家,我的任務(wù)是使復(fù)雜的主題易于理解,因此在本文中您將找不到太多技術(shù)術(shù)語(yǔ)。我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言這是我自出版之前收到的最常見(jiàn)的問(wèn)題。是一種后端語(yǔ)言。我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言? 這一切都取決于你想要完成的事情 作為技術(shù)作家,我的任務(wù)是使復(fù)雜的主題易于理解,因此在本文中您將找不到太多技術(shù)術(shù)語(yǔ)。我可以對(duì)面向?qū)ο蟮木?..

    selfimpr 評(píng)論0 收藏0
  • 在開(kāi)始第一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目之前就了解的那些事兒

    摘要:此外,與訓(xùn)練機(jī)器學(xué)習(xí)模型的作業(yè)相比,作業(yè)具有不同的執(zhí)行配置文件。此外,還制作了一個(gè)界面,以便控制機(jī)器學(xué)習(xí)的參數(shù)指定用于訓(xùn)練的數(shù)據(jù)量等。 摘要: 一份機(jī)器學(xué)習(xí)過(guò)來(lái)人的經(jīng)驗(yàn)清單分享,主要是包含一些關(guān)于構(gòu)建機(jī)器學(xué)習(xí)工作流以及Apache Spark應(yīng)該注意的一些事項(xiàng),希望這個(gè)清單能夠幫助那些正在學(xué)習(xí)機(jī)器學(xué)習(xí)的相關(guān)人員少走一些彎路,節(jié)約一些時(shí)間。 showImg(https://segment...

    BearyChat 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<