這篇純python技術文章,我自己平時也會用到,在此記錄一下。
為什麼會用到多個Python版本?
用macOS和Ubutntu的同學都知道系統預設安裝的Python2.7.x
,然後,我們平時python開發用的python3,所以,需要額外安裝一個Python3.x
的版本。
之前,我想是使用robotframework-ride但它只支援python3.7,於是,我安裝python3.7。(注:現在已經支援3.8了)
前幾天,我想學習一下tinygrad,他支援python3.8,於是,我又裝了3.8。
python多版本管理
- 使用Where查詢安裝的
python
、python3
路徑。
- macOS終端:
❯ where python
/usr/bin/python # 2.7.16
❯ where python3
/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命令提示符
❯ where python
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這個命令了。
❯ py8
Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
- 為不同的python 安裝庫。
每個python版本下面都有 pip,我們在使用pip的安裝庫的時候,經常不知道他安裝在哪個python下面了。
❯ py8 -m pip install selenium
❯ py8 -m pip show selenium
...
Location: c:\python38\lib\site-packages
...
帶上 python -m
的字首,這樣永遠不會裝錯。
為什麼會用虛擬環境?
作為一個使用python開發過大型專案的同學,一定會碰到python庫的版本依賴。
例如 直接依賴:
- A專案:使用 django 2.2
- B專案:使用 django 3.1
還有複雜的間接依賴:
- A專案:使用A框架 ——> 依賴 requests 1.10
- B專案:使用B庫 ——> 依賴 requests 2.x
而你又需要同時開發A、B兩個專案,總不能在執行不同的專案的時候,就把不同專案的依賴庫裝一遍吧!
虛擬環境管理
python的虛擬環境管理工具挺多的,virtualenv、virtualenvwrapper、pipenv,pyenv。其實明白了原理這些工具都不復雜,這裡以pipenv為例。
- 安裝pipenv
❯ pip install pipenv
- 建立虛擬環境
進入到專案目錄,建立虛擬環境。
❯ cd mypro # 進入專案目錄
❯ pipenv --python py8 # 指定基於哪個python版本建立虛擬環境。
Creating a virtualenv for this project...
Pipfile: D:\github\mypro\Pipfile
Using C:/Python38/py8.exe (3.8.6) to create virtualenv...
...
Successfully created virtual environment!
Virtualenv location: C:\Users\fnngj\.virtualenvs\mypro-D2Xyk8c9
- 安裝依賴
這一步從Pipfile.loc中安裝依賴。
❯ pipenv install
Installing dependencies from Pipfile.lock (db4242)...
================================ 0/0 - 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
- 進入虛擬環境
❯ pipenv shell
Launching subshell in virtual environment...
5.可以在虛擬環境裡面安裝你想要的應用了。
v3.8.6 ((mypro)) ❯ pip install xxx
6.退出虛擬環境
v3.8.6 ((mypro)) ❯ exit;
7.刪除虛擬環境
❯ pipenv --rm
注:其實這兩個管理在pycharm整合的就有,可是上來就完全依賴pycharm開發python的同學很難搞清楚。那麼,本文也有助於你更好的使用 pycharm。