沒啥重點,純粹就是我熊熊忘了怎麼離開虛擬環境所生出來的一篇 XDDD
一般來說,為了不弄亂系統本身的 Python 環境,在開發時會建立虛擬環境。這能幫助你避免相依性地獄,也能避免你因弄亂環境而被使用相同環境的同事圍毆 XDDD
之前最常使用 virtualenv 這個命令來建立虛擬環境。使用前必須先透過 pip 安裝:
$ pip install virtualenv
另一套我最近常用的是 Python 的 venv。它出現在 Python3.6 之後的版本中,理論上它是內建不需要特別安裝,但如果不幸遇到了,它會提醒你安裝 python3-venv:
$ sudo apt-get install python3-venv
雖然提了兩套,但這兩套的用法大同小異,除了建立時的指令略有不同外,後續的操作基本相同。那首先先來建立虛擬環境。
因為我的系統主要是使用 Python 3.9.4,那為了看清楚區別我建立一個 Python 3.6 的虛擬環境:
$ virtualenv -p python3.6 myenv_py36
created virtual environment CPython3.6.12.final.0-64 in 261ms
creator CPython3Posix(dest=/home/diatango_lin/Cynthia_Chuang/pyenv/myenv_py36_1, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/diatango_lin/.local/share/virtualenv)
added seed packages: pip==21.3.1, setuptools==59.6.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
其中,參數 --python
或是 -p
可用來指定虛擬環境的 Python 版號。
或是用 Python 的 venv 來建立虛擬環境,這個指令則是透過 Python 這個指令選擇特定或是任意 Python 的版本:
$ python3.6 -m venv myenv_py36
另外,還記得前面說過 Python 的 venv 是在 Python3.6 之後才出現的嗎?因此若想建立 Python3.6 之前的虛擬環境,這個方法是行不通的。
當成功建立一個虛擬環境後,你發現目前的下會產生一個虛擬環境資料夾。例如,當使用上述的指令建立虛擬環境後,可以發現名為 myenv_py36
的資料夾。而我們要啟動虛擬環境,就需要這些資料夾:
$ source myenv_py36/bin/activate
如此就可以進入虛擬環境模式之中。此時會注意到命令列的前方會有相對應的標示:
(myenv_py36) $
接下就是本篇重點(誤)!當要離開虛擬環境時輸入:
(myenv_py36) $ deactivate
我老是習慣性直接輸入 exit
,然後就不小心把 ssh 連線給切斷