python venv 创建虚拟环境 复制虚拟环境


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM