為什么會(huì)用到多個(gè)Python版本?
用macOS和Ubutntu的同學(xué)都知道系統(tǒng)默認(rèn)安裝的Python2.7.x,然后,我們平時(shí)python開(kāi)發(fā)用的python3,所以,需要額外安裝一個(gè)Python3.x的版本。
之前,我想是使用robotframework-ride但它只支持python3.7,于是,我安裝python3.7。(注:現(xiàn)在已經(jīng)支持3.8了)
前幾天,我想學(xué)習(xí)一下tinygrad,他支持python3.8,于是,我又裝了3.8。
python多版本管理
使用Where查找安裝的python、python3路徑。
macOS終端:
?wherepython
/usr/bin/python#2.7.16
?wherepython3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3#3.7.9
/usr/local/bin/python3#3.7.9
/usr/bin/python3#3.7.3
windows命令提示符
?wherepython
C:\Python37\python.exe
C:\Python38\python.exe
C:\Users\fnngj\AppData\Local\Microsoft\WindowsApps\python.exe
為不同的python改名字。
比如,C:\Python38\python.exe文件拷貝改名為C:\Python38\py8.exe,那我就可以愉快的使用py8這個(gè)命令了。
?py8
Python3.8.6(tags/v3.8.6:db45529,Sep232020,15:52:53)[MSCv.192764bit(AMD64)]onwin32
Type"help","copyright","credits"or"license"formoreinformation.
>>>
為不同的python安裝庫(kù)。
每個(gè)python版本下面都有pip,我們?cè)谑褂胮ip的安裝庫(kù)的時(shí)候,經(jīng)常不知道他安裝在哪個(gè)python下面了。
?py8-mpipinstallselenium
?py8-mpipshowselenium
...
Location:c:\python38\lib\site-packages
...
帶上python-m的前綴,這樣永遠(yuǎn)不會(huì)裝錯(cuò)。
為什么會(huì)用虛擬環(huán)境?
作為一個(gè)使用python開(kāi)發(fā)過(guò)大型項(xiàng)目的同學(xué),一定會(huì)碰到python庫(kù)的版本依賴(lài)。
例如直接依賴(lài):
A項(xiàng)目:使用django2.2
B項(xiàng)目:使用django3.1
還有復(fù)雜的間接依賴(lài):
A項(xiàng)目:使用A框架——>依賴(lài)requests1.10
B項(xiàng)目:使用B庫(kù)——>依賴(lài)requests2.x
而你又需要同時(shí)開(kāi)發(fā)A、B兩個(gè)項(xiàng)目,總不能在運(yùn)行不同的項(xiàng)目的時(shí)候,就把不同項(xiàng)目的依賴(lài)庫(kù)裝一遍吧!
虛擬環(huán)境管理
python的虛擬環(huán)境管理工具挺多的,virtualenv、virtualenvwrapper、pipenv,pyenv。其實(shí)明白了原理這些工具都不復(fù)雜,這里以pipenv為例。
安裝pipenv
?pipinstallpipenv
創(chuàng)建虛擬環(huán)境
進(jìn)入到項(xiàng)目目錄,創(chuàng)建虛擬環(huán)境。
?cdmypro#進(jìn)入項(xiàng)目目錄
?pipenv--pythonpy8#指定基于哪個(gè)python版本創(chuàng)建虛擬環(huán)境。
Creatingavirtualenvforthisproject...
Pipfile:D:\github\mypro\Pipfile
UsingC:/Python38/py8.exe(3.8.6)tocreatevirtualenv...
...
Successfullycreatedvirtualenvironment!
Virtualenvlocation:C:\Users\fnngj\.virtualenvs\mypro-D2Xyk8c9
安裝依賴(lài)
這一步從Pipfile.loc中安裝依賴(lài)。
?pipenvinstall
InstallingdependenciesfromPipfile.lock(db4242)...
================================0/0-00:00:00
Toactivatethisproject'svirtualenv,runpipenvshell.
Alternatively,runacommandinsidethevirtualenvwithpipenvrun.
進(jìn)入虛擬環(huán)境
?pipenvshell
Launchingsubshellinvirtualenvironment...
5.可以在虛擬環(huán)境里面安裝你想要的應(yīng)用了。
v3.8.6((mypro))?pipinstallxxx
6.退出虛擬環(huán)境
v3.8.6((mypro))?exit;
7.刪除虛擬環(huán)境
?pipenv--rm
注:其實(shí)這兩個(gè)管理在pycharm集成的就有,可是上來(lái)就完全依賴(lài)pycharm開(kāi)發(fā)python的同學(xué)很難搞清楚。那么,本文也有助于你更好的使用pycharm。
以上內(nèi)容為大家介紹了python多版本與虛擬環(huán)境,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。