简单介绍Python虚拟环境及使用方法

一、为什么需要虚拟环境?

这里的环境,指的就是 Python 代码的运行环境。它应该包含以下信息:

  • Python 解释器,用哪个解释器来执行代码?
  • Python 库的位置,该去哪里 import 所需要的模块?
  • 可执行程序的位置,比如说安装了 pip,那么 pip 命令是在哪里?

由于每个项目的情况都可能不一样,比如这个项目用的是vtk 7.1,另一个项目用的是vtk 9.0。如果不进行环境隔离而是全局安装,就会导致包的冲突从而出现问题,这个时候让每个项目都拥有一套独立的Python环境,这样就不会产生冲突了。Python虚拟环境正是为了解决这个问题而存在的,简而言之,虚拟环境就是系统 Python 环境的一个副本。

Python虚拟环境常见的工具为以下几种:

  • virtualenv
  • venv
  • pipenv

二、virtualenv

virtualenv 是目前最流行的 Python 虚拟环境配置工具。它不仅同时支持 Python2 和 Python3,而且可以为每个虚拟环境指定 Python 解释器,并选择不继承基础版本的包。

virtualenv 的优点

  • 使得不同Python应用的开发环境相互独立
  • 开发环境升级不影响其他应用的开发环境,也不会影响全局的环境(默认开发环境是全局开发环境),因为虚拟环境是将全局环境进行私有的复制,当我在虚拟环境进行 pip install 时,只会安装到选择的虚拟环境中。
  • 它可以防止系统中出现包管理混乱和版本的冲突

1. pip 安装 virtualenv

pip install virtualenv 

2. 创建虚拟环境目录

mkdir myproject
cd myproject

3. 创建一个独立的Python运行环境: myenv

virtualenv --no-site-packages myenv
# --no-site-packages 其意义在于不复制已经安装到系统Python环境中的所有第三方包从而得到一个“纯净”的运行环境。

此时当前目录下会生成一个名为:“myenv” 的目录,该目录中存放刚生成的虚拟环境文件

4. 激活虚拟运行环境

# Windows
myenv\Scripts\activate.bat

# Linux
source myenv/bin/activate

以上命令执行完后会发现命令提示符变了,有个(myenv)前缀,表示当前环境是一个名为“myenv”的Python环境,此时可以在该环境中按照我们熟悉的方式安装库、运行程序等

5. 使用deactivate命令退出当前的myenv环境

deactivate

三、venv

Python 从3.3 版本开始,自带了一个虚拟环境 venv,它的很多操作都和 virtualenv 类似,但是两者运行机制不同。因为是从 3.3 版本开始自带的,这个工具也仅仅支持 python 3.3 和以后版本。所以,要在 python2 上使用虚拟环境,依然要利用 virtualenv 。

1. pip安装venv

# Windows
windows中venv已经以标准库的形式存在,不用再单独安装

# Linux
sudo apt install python3-venv  # 如有不同版本的Python3,可指定具体版本venv:python3.5-venv

2. 在当前目录创建一个独立的Python运行环境: myenv

# Windows
py -3 -m venv myenv  

# Linux
python3 -m venv myenv

3. 激活虚拟运行环境

# Windows
myenv\Scripts\activate.bat

# Linux
source myenv/bin/activate

以上命令执行完后会发现命令提示符变了,有个(myenv)前缀,表示当前环境是一个名为“myenv”的Python环境,此时可以在该环境中按照我们熟悉的方式安装库、运行程序等

4. 使用deactivate命令退出当前的myenv环境

deactivate

四、pipenv

pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv,能够有效管理Python多个环境,各种第三方包及模块。

pipenv 的主要特性:

  • pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。
  • 过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便。
  • 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。
  • 通过加载.env文件简化开发工作流程。
  • 支持Python2 和 Python3,在各个平台的命令都是一样的。

1. pip安装pipenv

pip3 install pipenv  # 全局安装,如果只想在当前用户模式下安装,可添加参数:--user

# 更新
pip3 install --user --upgrade pipenv

注: 如果在使用当前用户模式下安装pipenv后在shell中提示不可用,则需要把用户库的目录“C:\Users\XXX\AppData\Roaming\Python\Python37\Scripts”添加到你的PATH【系统环境路径】中,然后重启电脑,环境变量生效后即可使用。

2. pipenv创建虚拟环境说明 

pipenv --two  				# 使用当前系统中的Python2 创建环境
pipenv --three			    # 使用当前系统中的Python3 创建环境

pipenv --python 3  			# 指定使用Python3创建环境
pipenv --python 3.6  		# 指定使用Python3.6创建环境
pipenv --python 2.7.14  	# 指定使用Python2.7.14创建环境

1)创建环境时应使用系统中已经安装的、能够在环境变量中搜索到的Python 版本,否则会报错。

2)每次创建环境都会在当前目录下生成一个名为Pipfile文件,用来记录刚创建的环境信息,如果当前目录下之前存在该文件,会将其覆盖。

3)在使用指定版本创建环境的时候,版本号与参数 --python 之间有个空格。

3. 创建Python3.8环境

激活虚拟环境

pipenv shell 

环境经激活后,会发现命令提示符变了(上图中的“pyTest”前缀,表示生成了名为“pyTest”的虚拟环境)

4. 其他常用命令

pipenv --where                  # 显示目录信息
pipenv --venv  					# 显示虚拟环境信息
pipenv --py  					# 显示Python解释器信息

pipenv install XXX  	  		# 安装XXX模块并加入到Pipfile
pipenv install XXX==1.11  		# 安装固定版本的XXX模块并加入到Pipfile

pipenv graph 					# 查看目前安装的库及其依赖
pipenv check  					# 检查安全漏洞

pipenv update --outdated  		# 查看所有需要更新的依赖项
pipenv update 					# 更新所有包的依赖项
pipenv update package_name		# 更新指定的包的依赖项

pipenv uninstall XXX 			# 卸载XXX模块并从Pipfile中移除
pipenv uninstall --all  		# 卸载全部包并从Pipfile中移除
pipenv uninstall --all-dev  	# 卸载全部开发包并从Pipfile中移除

退出当前虚拟环境

exit 

删除虚拟环境

pipenv --rm

5. python 文件的运行

# 使用pipenv完整命令运行
pipenv run python xxx.py

# 在激活环境中运行
pipenv shell
python xxx.py

到此这篇关于简单介绍Python虚拟环境及使用方法的文章就介绍到这了,更多相关Python虚拟环境内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python中如何使用虚拟环境

    在进行python的开发过程中一直倡导使用虚拟环境来进行项目隔离,这样不会因为python的包不同而导致各种问题,但是以往为了图省事简单,安装包就一直使用pip install 进行全局安装,这样做其实很不好,最近也开始尝试使用虚拟环境来对项目进行隔离开发. 在python中一般情况下有两套方案,一种是使用virtualenv/venv 方式,还有一种是使用pipenv,但是看到网上对于pipenv这个项目有些非议,就目前来说项目的issue和pr很多,但是开发者似乎不太想要对其进行维护,所以还

  • Python 中如何使用 virtualenv 管理虚拟环境

    1. 什么是虚拟环境? 虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰. 举个例子吧. 假设我们的电脑里有两个项目,他们都用到同一个第三方包,本来一切都顺利.但是由于某种原因,项目B由于某些原因要使用这个第三方包的一些新特性(新版本才有),而如果就这样贸然升级了,对项目A的影响我们无法评估,这个时候我们就特别需要有一种解决方案可以让项目A和B,处于两个不同的Python环境中.互不影响. 为了方便大家对虚拟环境有个认识,我列举了下其优点: 使不同应

  • python virtualenv虚拟环境配置与使用教程详解

    概述 python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序,但是使用不同版本的第三方库,比如A应用使用six 1.12.0,而B应用需要使用six 1.15.0.这种情况下,virtualenv就派上用场了,它能为每个应用提供一套"相对独立"的Python虚拟运行环境. 注意,这里为啥是"相对独立"而不是"绝对独立"呢?针对一些.exe依赖程序,默认安装时,不会安装在虚拟环境中,安装后为各个应用共享,

  • Ubuntu20.04安装Python3的虚拟环境教程详解

    以下均在本人虚拟机上进行 1.安装pip3 sudo apt install python3-pip 2.安装虚拟环境 sudo apt install virtualenv sudo apt install virtualenvwrapper 3.修改配置文件设置环境变量 cd ~ vim .bashrc 在.bashrc文件后面加入下面两行 export WORKON_HOME=$HOME/.virtualenvs source /usr/share/virtualenvwrapper/vi

  • Python venv虚拟环境配置过程解析

    一.创建虚拟环境 python -m venv env 通过执行命令,创建一个名为env的虚拟环境,命令执行完毕后会出现一个env文件夹,这是一个全新的虚拟环境,包含这个项目专用的python解析器. 注意:ubuntu下预装的python3,标准库下没有venv包,需要执行下述命令手动安装. sudo apt install python3-venv 使用vscode打开env目录,可以看到如下结构: 二.使用虚拟环境 Windows环境中使用如下命令"激活"虚拟环境: .\Scri

  • 在Mac中配置Python虚拟环境过程解析

    如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtualenv 3.配置.bashrc文件,没有的话在根目录"~"下创建一个 cd ~ vim .bashrc 定义Python安装路径(可通过which is python3查询) export VIRTUALENVWRAPPER_PYTHON='/usr/local/bin/python3

  • 如何在mac下配置python虚拟环境

    安装python虚拟环境核心目的就是为了复制一个python环境,这样新项目下载的所有包,都会存放在虚拟环境下的python site-package 中 首先安装 1. sudo pip install virtualenv # 安装虚拟环境 2. sudo pip install virtualenvwrapper # 安装虚拟环境扩展包 3. vim .bash_profile # 家目录下编辑.bash_profile文件,加入以下3句 export WORKON_HOME='~/.vi

  • 解决python虚拟环境切换无效的问题

    使用pycharm创建新项目,使用虚拟环境,但是进入到项目的cainiao_guoguo_health\venv\Scripts目录启动虚拟环境后,安装第三方库,却还是安装到其他环境中去了, 检查activate文件后,发现文件中的虚拟环境地址不对 原来是新建项目时项目名叫"菜鸟裹裹健康度",后来修改为英文"cainiao_guoguo_health",但是创建虚拟环境时用的的中文的名称,所以启动时找不到该虚拟环境,肯定启动不起来 补充知识:pip: failed

  • 简单介绍Python虚拟环境及使用方法

    一.为什么需要虚拟环境? 这里的环境,指的就是 Python 代码的运行环境.它应该包含以下信息: Python 解释器,用哪个解释器来执行代码? Python 库的位置,该去哪里 import 所需要的模块? 可执行程序的位置,比如说安装了 pip,那么 pip 命令是在哪里? 由于每个项目的情况都可能不一样,比如这个项目用的是vtk 7.1,另一个项目用的是vtk 9.0.如果不进行环境隔离而是全局安装,就会导致包的冲突从而出现问题,这个时候让每个项目都拥有一套独立的Python环境,这样就

  • 简单介绍Python中的floor()方法

    floor()方法返回不大于x的最大整数(向下取整). 语法 以下是floor()方法的语法: import math math.floor( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这是一个数值表达式. 返回值 此方法返回不大于x的最大整数. 例子 下面的例子显示了floor()方法的使用. #!/usr/bin/python import math # This will import math mod

  • 简单介绍Python中的round()方法

    round()方法返回 x 的小数点四舍五入到n个数字. 语法 以下是round()方法的语法: round( x [, n] ) 参数 x --这是一个数值表达式 n --这也是一个数值表达式 返回值 该方法返回 x 的小数点四舍五入到n个数字 例子 下面的例子显示了round()方法的使用 #!/usr/bin/python print "round(80.23456, 2) : ", round(80.23456, 2) print "round(100.000056,

  • 简单介绍Python中的readline()方法的使用

    readline()方法从文件中读取一整行.尾部的换行符保持在字符串中.如果大小参数且非负,那么一个最大字节数,包括结尾的换行和不完整的行可能会返回. 遇到EOF时立即返回一个空字符串. 语法 以下是readline()方法的语法: fileObject.readline( size ); 参数 size -- 这是可以从文件中读取的字节数. 返回值 此方法返回从文件中读取的行. 例子 下面的例子显示了readline()方法的使用. #!/usr/bin/python # Open a fil

  • 简单介绍Python中的decode()方法的使用

    decode()方法使用注册编码的编解码器的字符串进行解码.它默认为默认的字符串编码. 语法 以下是decode()方法的语法: str.decode(encoding='UTF-8',errors='strict') 参数 encoding -- 这是所使用的编码.对于所有的编码方案的列表,请访问:标准编码库 errors -- 这可能是给定一个不同的错误处理机制.默认的错误是"严格",即编码错误提出UnicodeError.其他可能的值是ignore', 'replace', 'x

  • 简单介绍Python的第三方库yaml

    目录 一.yaml基本介绍 二.适用场景 三.基本的语法规则 四.YAML支持的三种数据结构 4.1 对象 4.2 数组 4.2.1 对象和数组 4.3 纯量 4.4 还有一些特殊符号 4.4.1 - YAML可在同一个文件中,使用-表示一个文档的开始 4.4.2 -和-配合使用,在一个配置文件中代表一个的结束 4.4.3 YAML中使用!!做类型强行转换 4.4.4 > 在字符串中表示折叠换行:| 保留换行.这两个符号是YAML中字符串经常使用的符号 4.4.5 引用.重复的内容在YAML中可

  • Linux安装Python虚拟环境virtualenv的方法

    1.安装virtulenv.virtulenvwrapper包 pip install virtualenv virtualenvwrapper 2.virtualenvwrapper是virtualenv的扩展工具,可以方便的创建.删除.复制.切换不同的虚拟环境. 3. 设置环境变量,把下面两行添加到~/.bash_profile里 export WORKON_HOME=/software/venv source /usr/local/bin/virtualenvwrapper.sh 4.使环

  • 简单介绍Python中的几种数据类型

    大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",hello List(列表) 例如:[1,2,3],[1,2,3,[1,2,3],4] Dictionary(字典) 例如:{1:"nihao",2:"hello"} Tuple(元组) 例如:(1,2,3,abc) Bool(布尔) 包括True.False 由于Pyt

  • 简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, 今天就简单介绍下 Tornado 协程实现原理, Tornado 的协程是基于 Python 的生成器实现的, 所以首先来回顾下生成器. 生成器 Python 的生成器可以保存执行状态 并在下次调用的时候恢复, 通过在函数体内使用 yield 关键字 来创建一个生成器, 通过内置函数 next 或生

  • Centos安装Python虚拟环境及配置方法

    virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境. python3的虚拟环境工具配置 1.下载虚拟环境工具 [root@localhost opt]#pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv 2.通过命令行创建虚拟环境 [root@localhost opt]#find /opt/python-3.6.9 -name site-packages 所有pip3安装的模块都会放在这里

随机推荐