1. 程式人生 > >python多版本與虛擬環境

python多版本與虛擬環境

這篇純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多版本管理 1. 使用Where查詢安裝的`python`、`python3` 路徑。 * macOS終端: ```shell ❯ 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命令提示符 ```shell ❯ where python C:\Python37\python.exe C:\Python38\python.exe C:\Users\fnngj\AppData\Local\Microsoft\WindowsApps\python.exe ``` 2. 為不同的python 改名字。 比如, `C:\Python38\python.exe` 檔案拷貝改名為 `C:\Python38\py8.exe`,那我就可以愉快的使用py8這個命令了。 ```shell ❯ 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. >>> ``` 3. 為不同的python 安裝庫。 每個python版本下面都有 pip,我們在使用pip的安裝庫的時候,經常不知道他安裝在哪個python下面了。 ```shell ❯ 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為例。 1. 安裝pipenv ```shell ❯ pip install pipenv ``` 2. 建立虛擬環境 進入到專案目錄,建立虛擬環境。 ```shell ❯ 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 ``` 3. 安裝依賴 這一步從Pipfile.loc中安裝依賴。 ```shell ❯ 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. ``` 4. 進入虛擬環境 ```shell ❯ pipenv shell Launching subshell in virtual environment... ``` 5.可以在虛擬環境裡面安裝你想要的應用了。 ```shell v3.8.6 ((mypro)) ❯ pip install xxx ``` 6.退出虛擬環境 ```shell v3.8.6 ((mypro)) ❯ exit; ``` 7.刪除虛擬環境 ```shell ❯ pipenv --rm ``` 注:其實這兩個管理在pycharm整合的就有,可是上來就完全依賴pycharm開發python的同學很難搞清楚。那麼,本文也有助於你更好的使用 pycharm。