首页 > 编程语言 >Python创建虚拟环境

Python创建虚拟环境

时间:2023-03-11 23:24:41浏览次数:32  
标签:virtualenv Python 创建 virtualenvwrapper 虚拟环境 env01 my

1、什么是虚拟环境

虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰。

 

example:

假设我们服务器中有两个项目,都是用到了一个第三方包,但是因为项目原因导致使用的这个第三方包的版本不一致。

这个时候就需要想办法把两个项目隔离开,处在不同的python环境中。

为了方便大家对虚拟环境有个认识,我列举了下其优点:

  • 使不同应用开发环境独立
  • 环境升级不影响其他应用,也不会影响全局的python环境
  • 可以防止系统中出现包管理混乱和版本的冲突

 

市场上管理 Python 版本和环境的工具有很多,这里列举几个:

 

  • p:非常简单的交互式 python 版本管理工具。
  • pyenv:简单的 Python 版本管理工具。
  • Vex:可以在虚拟环境中执行命令。
  • virtualenv:创建独立 Python 环境的工具。
  • virtualenvwrapper:virtualenv 的一组扩展。

 

工具很多,但个人认为最好用的,当属 virtualenvwrapper,推荐大家也使用。

 

2、virtualenv

由于 virtualenvwrapper 是 virtualenv 的一组扩展,所以如果要使用 virtualenvwrapper,就必须先安装 virtualenv。

安装 virtualenv
pip install virtuanelv

  

基本使用

virtualenv 创建虚拟环境是在当前目录下创建的。

所以为了便于管理,可以手动创建一个目录集中存放,统一在这个里创建虚拟环境,这样所有的虚拟环境都会在这个目录下

创建

# 准备目录并进入
$ mkdir -p /home/wangbm/Envs
$ cd !$

# 创建虚拟环境(按默认的Python版本)
# 执行完,当前目录下会有一个my_env01的目录
$ virtualenv my_env01

# 你也可以指定版本
$ virtualenv -p /usr/bin/python2.7 my_env01
$ virtualenv -p /usr/bin/python3.6 my_env02

# 你肯定觉得每次都要指定版本,相当麻烦吧?
# 在Linux下,你可以把这个选项写进入环境变量中
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7" >> ~/.bashrc

 

进入/退出

 

$ cd /home/wangbm/Envs

# 进入
$ source my_env01/bin/activate

# 退出
$ deactivate

 

删除 删除虚拟环境,只需删除对应的文件夹就行了。并不会影响全局的Python和其他环境。

 

$ cd /home/wangbm/Envs
$ rm -rf my_env01

 

注意: 创建的虚拟环境,不会包含原生全局环境的第三方包,其会保证新建虚拟环境的干净。

 

如果你需要和全局环境使用相同的第三方包。可以使用如下方法:

 

# 导出依赖包
$ pip freeze > requirements.txt

# 安装依赖包
$ pip install -r requirements.txt 

 

 

3、virtualenvwrapper

virtualenv 虽然已经相当好用了,可是功能还是不够完善。

你可能也发现了,要进入虚拟环境,必须得牢记之前设置的虚拟环境目录,如果你每次按规矩来,都将环境安装在固定目录下也没啥事。但是很多情况下,人是会懒惰的,到时可能会有很多个虚拟环境散落在系统各处,你将有可能忘记它们的名字或者位置。

还有一点,virtualenv 切换环境需要两步,退出 -> 进入。不够简便。

为了解决这两个问题,virtualenvwrapper就诞生了。

 

安装

 

# 安装 - Linux
pip install virtualenvwrapper

# 安装 - Windows
pip install virtualenvwrapper-win

 

配置 

先find一下virtualenvwrapper.sh文件的位置

 

find / -name virtualenvwrapper.sh
# /usr/bin/virtualenvwrapper.sh

 

在~/.bashrc 文件新增配置

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
export VIRTUALENVWRAPPER_SCRIPT=/usr/bin/virtualenvwrapper.sh

配置生效

source /usr/bin/virtualenvwrapper.sh

 

基本语法

 

mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME

 

常用方法

# 创建
$ mkvirtualenv my_env01

# 创建指定版本
$ mkvirtualenv -p python3 my_env011

# 进入
$ workon my_env01

# 退出
$ deactivate

# 列出所有的虚拟环境,两种方法
$ workon
$ lsvirtualenv

# 在虚拟环境内直接切换到其他环境
$ workon my_env02

# 删除虚拟环境
$ rmvirtualenv my_env01
View Code

 

其他命令

 

# 列出帮助文档
$ virtualenvwrapper

# 拷贝虚拟环境
$ cpvirtualenv ENVNAME [TARGETENVNAME]

# 在所有的虚拟环境上执行命令
$ allvirtualenv pip install -U pip

# 删除当前环境的所有第三方包
$ wipeenv

# 进入到当前虚拟环境的目录
$ cdsitepackages

# 进入到当前虚拟环境的site-packages目录
$ cdvirtualenv

# 显示 site-packages 目录中的内容
$ lssitepackages
View Code

标签:virtualenv,Python,创建,virtualenvwrapper,虚拟环境,env01,my
From: https://www.cnblogs.com/xuejian123/p/17201339.html

相关文章

  • Python 并发
    1、并发与并行并行:多个程序同时运行并发:伪并行,看起来是同时并行,其实质是利用了多道技术无论是并行还是并发,在用户眼里看起来都是同时运行的,不管是线程还是进程,都是只是......
  • [oeasy]python0105_七段数码管_7_SEGMENT_数码管驱动_4511
    七位数码管回忆上次内容上次回顾了指示灯辉光管 并了解了驱动(driver)驱动就是控制设备工作的人(模块)  辉光管离我们的......
  • python - jpg转pdf
    1.需要先安装两个模块pip3installfitzpip3installPyMuPDF2.脚本如下importfitzimportosfromfunctoolsimportcmp_to_key#过滤掉当前目录除jpg以外的文......
  • 关于使用python脚本将同级的其他目录下的所有文件根据年份移动到当脚本位置的年份目录
    今天收到一个请求,要将一个目录下的所有文件,根据年份进行分类放到年份目录,目录中近20万个文件但只移动指定后缀的,年份判断标准很重要和严谨,一定是_年份数字其他数字.后缀......
  • 为application.yml创建自定义配置并进行自动提示
    第一步:导入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId></dependency>......
  • Python 决定迁移到 GitHub
    Python已经决定迁移到GitHub,虽然有人公开说反对迁移到GitHub,但还是有很多人会在一定程度上使用GitHub,而且几位核心的开发者也倾向于选择GitHub。Python在很久之前为了......
  • 实验1 Python开发环境使用和编程初体验
    实验任务1:task1_1实验源码:#task1_1print的使用print('hey,u')#输出单个字符串或者单个变量print('hey','u')x,y,z=1,2,3print(x,y,z)#输出多个数据项,用“,”......
  • bean的创建
    1.spring启动2.配置扫描3.生成筛选单例BeanDefinition合并4.加载类5.实例化前6.推断构造方法7.实例化8.实例化后9.填充属性(变量、依赖注入@Autowire、@Resource)10......
  • 关于python中使用break语句跳出两层循环的方法实现
    break多用于for循环语句中,用于跳出当前for循环,不对当前for循环后面的元素进行遍历操作了for循环语句中,如果使用到break语句,一般都是因为达到了某个条件,才执行break的,因此......
  • 创建python虚拟环境(深度学习)
    本文根据杨力-中量大AI老师的配置进行记录学习:1.打开cmd     2.创建虚拟环境  3.激活虚拟环境 4.文件夹中的目录结构  以后想用python就来这里就......