linux使用virtualenv构建虚拟环境,requirement.txt记录包版本
virtualenv介绍:
virtualenv把是一个把python应用隔离在一个虚拟环境中的工具。网上的例子较多,这里重点讲述怎么使用virtualenv来激活一个虚拟环境,并且记录虚拟环境中所依赖包的版本以便与以后在新的环境中一次性按照原版本安装。
-
安装virtualenv:
pip install virtualenv
-
创建虚拟环境:
mkdir envs
cd envs
virtualenv venv
-
激活虚拟环境:
source venv/bin/activate
-
安装依赖包:
如果激活成功,命令行前端就会出现(venv)的标识,证明你现在的操作都在venv环境下,在虚拟环境下使用pip安装包,这里安装到了当前的virtual enviroment中,而不是全局系统环境,例如:
pip install click
注:这里可能会出现报错权限不够,那是因为venv目录所属用户非当前用户,通过ls -l来查看venv所属用户,若不是,通过如下指令将venv目录的文件所有者改为当前用户:
sudo chown -R username venv/
这样再执行pip install 操作就可以了
-
记录包:
如果想记录该虚拟环境下的所有依赖包信息,只需执行:
pip freeze > requirements.txt
系统会在venv目录下记录该虚拟环境中所装的所有包和版本并放在该目录下的requirements.txt中。
创建一个新的虚拟环境后,复制该requirements.txt,然后在新环境中执行:
pip install -r requirements.txt
这样新的虚拟环境的所有包版本和venv虚拟环境版本一样。
virtualenv进阶virtualenvwrapper:
virtualenvwrapper能够更加方便的管理虚拟环境,它能够将所有虚拟环境整合在一个目录下,新增,删除、切换虚拟环境等。
-
安装:
pip install virtualenvwrapper
-
创建虚拟环境目录:
mkdir $HOME/Envs
配置环境变量,以使用virtualenvwrapper指令,具体操作如下:
编辑文件:
sudo vi ~/.bashrc
在文件后追加:
export WORKON_HOME=$HOME/Envs
source home/ctt/bin/anaconda3/bin/virtualenvwrapper.sh
第一行是虚拟环境的目录设置,第二行是virtualenvwrapper.sh的路径,一般在python安装路径下bin,可有find / -name virtualenvwrapper.sh得到路径。
保存并关闭文件,执行:
source ~/.bashrc #使新的配置信息生效
-
基本使用方式:
列出虚拟环境列表: workon 或者 lsvirtualenv
新建虚拟环境: mkvirtualenv [虚拟环境名称]
启动/切换虚拟环境: workon [虚拟环境名称]
删除虚拟环境: rmvirtualenv [虚拟环境名称]
离开虚拟环境: deactivate
新建虚拟环境后,其他操作和virtualenv基本一致,在系统中使用vitualenvwrapper即可实现虚拟环境的配置