python中用於創建和管理虛擬環境的包是venv,在終端中執行下面命令會在當前路徑下創建名字為new_dir的與python版本相同的虛擬環境,如果系統中有多個python版本,應當按需指定。所創建的虛擬環境new_dir只包含原生python庫,不包含python路徑下安裝的依賴包。
$ python -m venv new_dir
$ python3 -m venv new_dir
執行下面命令將激活虛擬環境new_dir,
source new_dir/bin/activate
終端中的提示符前面將出現 (new_dir)的字樣,例如,
$ source new_dir/bin/activate
(new_dir)$ python
>>> import sys
>>> sys.path
>>>
在此環境中,使用pip安裝依賴包只對當前環境做出修改。
(new_dir)$ pip install numpy
被創建的虛擬環境new_dir只包含原生python庫,然而我們想要創建一個擁有與原python相同的依賴包的環境,有2種實現方式:使用pip重新安裝依賴包以及使用virtualenv-clone復制虛擬環境。
- 使用pip重新安裝依賴包:
pip freeze 導出原python的依賴包信息 requirement.txt,然后在new_dir環境中重新安裝,或者對requirement.txt中包的版本號做修改后再重新安裝。這種方式會重新下載依賴包,占用了網絡帶寬。
$ pip freeze > requirements.txt
$ cat requirements.txt
scikit-learn==0.21.3
scipy==1.3.1
scs==2.1.1.post2
simplejson==3.17.0
six==1.12.0
sympy==1.5.1
$ source new_dir/bin/activate
(new_dir)$ pip install -r requirements.txt
$...
- 使用virtualenv-clone復制虛擬環境
virtualenv-clone是一個python包,virtualenv-clone dir1 new_dir2,表示復制虛擬環境dir1來創建new_dir2
$ pip install virtualenv-clone
$ virtualenv-clone dir1 new_dir2
requirements.txt