Python 学习 --->Anaconda、pyenv、virtualenv、venv

由于 Python 的版本众多,还有 Python2 和 Python3 的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题。同时在python 开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突。

对于上面的问题,这时就需要Python版本 环境 切换工具

批量 安装 Python 包

$ pip freeze > requirements.txt   # 冻结(freeze) 环境,就是将当前环境的软件包等保存下来:
$ cat requirements.txt

$ pip install -r requirements.txt    # 批量安装对应版本的软件包

1、一些 切换 工具

Python 版本环境切换工具 的 作用:

  • 多个不同版本的 Python 可以在系统上共存。并且提供简单的命令来支持不同 Python 版本之间的切换。

一些 工具

  • pyenv:目前最好用的 python版本环境切换工具,不支持 Windows。pywin 是 Windows 上 pyenv 的替代品,但是功能相对 pyenv 比较少
  • virtualenv:也是比较好用的 python虚拟环境 配置工具
  • virtualenvwrapper:对 virtualenv 的一个封装,使用shell开发。简化了virtualenv 命令的使用,并且进行了一些功能扩展
  • virtualenvwrapper-win:使用 Windows batch shell 开发的 virtualenvwrapper
  • venv:Python 3.3 版本以后自带的虚拟环境工具,仅支持 python 3.3 和以后版本。
  • py.exe    Python 3.3 版本以后 Windows 系统自带的启动工具(Python Launcher for Windows),可以直接在命令行中使用

PyCharm 支持的虚拟环境

2、Anaconda (推荐)

Anaconda官网:https://www.anaconda.com/
Anaconda 官网 文档:http://docs.anaconda.com/anaconda/user-guide
Anaconda介绍、安装及使用教程:https://zhuanlan.zhihu.com/p/32925500
知乎:初学python者自学anaconda的正确姿势是什么?:https://www.zhihu.com/question/58033789
Anaconda 的新手使用大全:http://www.php.cn/python-tutorials-392031.html
Anaconda 入门使用总结:https://www.jb51.net/article/137786.htm

  • Anaconda 是 Python 的一个开源发行版本。Anaconda 里面集成了很多关于 python 科学计算的第三方库,主要面向科学计算且安装方便,而 python 是一个编译器。如果不使用 anaconda,那么安装库的时候,库的依赖安装起来比较麻烦。
  • conda 是 Anaconda 提供的一个管理工具 ,conda 是开源包(packages)和 虚拟环境(environment)的管理系统,,可以把 conda 看作是:pip + virtualenv + PVM (Python Version Manager) + 一些必要的底层库。即 conda 就是一个更完整也更大的集成管理工具。主要优点是预装了很多第三方库,而且 Anaconda 中增加了conda install 命令,安装新 package 格外方便,还自带 Spyder IDE 和 Jupyter Notebook

conda config --set auto_activate_base false #取消默认加载环境
false改为true时,命令为 确认默认加载环境

Windows 安装

按照安装程序提示一步步安装即可。

  • Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
  • Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
  • qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
  • spyder :一个使用 Python 语言、跨平台的、科学运算集成开发环境。

配置环境变量:window 环境变量设置:电脑 ---> 属性 ---> 高级系统设置 ---> 环境变量 ---> 系统变量 ---> Path,然后在 Path 中添加 anaconda 的安装目录的 Scripts 文件夹

安装完成后,我们还需要对所有工具包进行升级,以避免可能发生的错误。

打开命令行(最好用管理员模式打开) 执行:conda --version

升级所有包:conda upgrade --all  或者  conda update --all

Linux 安装

下载 sh 文件,直接执行安装,可以根据时间排序,查找最新的 sh 文件

Ubuntu 安装 conda:https://zhuanlan.zhihu.com/p/459607806

镜像站点:

https://repo.anaconda.com/archive/?C=M&O=A
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

设置国内镜像

因为Anaconda.org的服务器在国外。所幸的是,https://mirrors.tuna.tsinghua.edu.cn/ 有 https://mirrors.tuna.tsinghua.edu.cn/anaconda/ 的镜像,我们将其加入conda的配置即可。

请在cmd中运行以下代码:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
# 设置搜索时显示通道地址

Conda 包管理 ( windows、linux )

conda 将 conda、python 等都视为 package,因此,完全可以使用 conda 来管理 conda 和 python 的版本。

创建 环境

conda create -n env3 python=3    // 创建 env3 环境,并指定 python 版本为3(的最新版本)

conda create --name py39 python=3.9

activate              // 切换到 base 环境
activate py39      // 切换到 py39 环境

使用 activate 激活某个环境

执行进入命令,实际上此时系统把默认环境从PATH中去除,再把 3.9 对应的命令加入PATH

Windows 进入、退出
        进入时,执行命令:activate py39
        退出时,执行命令:deactivate py39

Linux & Mac 进入、退出
        进入时,执行命令:source activate py39
        退出时,执行命令:source deactivate py39

# 删除一个已有的 虚拟环境,例如:python34
    conda env remove -n python34    
    conda remove -n learn_1 --all

# 复制 ( 克隆 ) 虚拟环境
    conda create -n BBB --clone AAA   // 从 BBB 克隆一个新的虚拟环境 AAA
    # 移植过来的环境只是安装了你原来环境里用 conda install 等命令直接安装的包,
    # 你用pip之类装的东西没有移植过来,需要你重新安装。

conda update conda        # 更新conda,保持conda最新

conda install requests      # 等价于 pip install requests

conda install numpy scipy pandas    # 同时安装多个包

conda install numpy=1.10            # 指定安装的版本

conda update requests         // 更新 requests 包 

conda remove requests  或者  pip uninstall requests    // 删除包

conda remove -n py39 numpy
conda update anaconda     # 更新 anaconda
conda update python        # 更新 python

conda search numpy       # 查找 package 信息

conda env list                    // 列出 所有环境
conda list                          // 列出当前环境的所有包

conda list -n py39            # 查看某个指定环境的已安装包 ( -n 即 -name)
conda install -n py39 numpy    # (-n 即 -name)
conda remove -n learn --all       // 删除learn环境及下属所有包

conda env export > environment.yaml      // 导出当前环境的包信息
conda env create -f environment.yaml     // 用配置文件创建新的虚拟环境

补充:如果创建新的 python 环境,比如 3.9,运行 conda create -n py39 python=3.9 之后,conda 仅安装 python 3.9 相关的必须项,如 python、pip 等,如果希望该环境像默认环境那样,安装 anaconda 集合包则需要执行:conda install anaconda 。结合创建环境的命令,以上操作可以合并为:conda create -n python34 python=3.4 anaconda

从 Anaconda.org ( http://anaconda.org ) 安装包。当使用 conda install 无法进行安装时,可以考虑从 Anaconda.org 中获取安装包的命令,并进行安装。http://anaconda.org

管理虚拟环境

activate 命令是进入 anaconda 设定的虚拟环境中,如果后面什么参数都不加,那么会进入 anaconda 自带的 base 环境。示例执行 python 命令行,前面就会多一个(base) 说明当前我们处于的是 base 环境下。

创建虚拟环境,执行命令:conda create --name env_name  list_of_packages

  • -n :代表 name,一个杠 表示短参数,长参数可以使用 --name
  • env_name 是需要创建 的 虚拟环境名称
  • list_of_packages 在新环境中需要安装的工具包 ( 多个 包 用空格分隔 )。

示例:conda create -n py39 python=3.9 pandas 

说明:创建 名叫 py39 的虚拟环境,指定 python 版本为 3.9,并安装 pandas 。( python 也相当于 一个 包 ),即 创建一个 名叫 py39 的虚拟环境,然后安装 python3.9 和 pandas 这两个包。

提示:默认情况下,在 Linux 中新创建的环境将会被保存在 /Users/<user_name>/anaconda3/env 目录下,其中, <user_name> 为当前用户的用户名。在 windows 中创建的环境则在 anaconda3 安装目录 的 env 目录下。

创建的 虚拟环境 在 envs 目录下。anaconda 所谓的创建虚拟环境其实就是安装了一个真实的 python 环境, 只不过我们可以通过 activate,conda 等命令去随意的切换我们当前的 python 环境,用不同版本的解释器和不同的包环境去运行 python 脚本。

与 pycharm 连接

pycharm 也能很方便的和 anaconda 的虚拟环境结合。在 Setting => Project => Project Interpreter 里面修改 Project Interpreter,点击 齿轮标志 再点击 Add Local 为你某个环境的 python.exe 解释器即可。

Anaconda Navigtor

按下 Windows 徽标键,调出 Windows 开始菜单,可以看到 “最近添加”。

  • Anaconda prompt:是一个Anaconda的终端,类似 cmd 命令可以便捷操作 conda 环境,可以建立不同的版本环境 Python2 和3,打开 Anaconda Prompt,这个窗口和 doc 窗口一样的,打开之后就是base 虚拟环境。输入命令就可以控制和配置 python,最常用的是 conda 命令,这个 pip 的用法一样,此软件都集成了,你可以直接用,点开的话如下图。用命令 “conda list” 查看已安装的包,从这些库中我们可以发现NumPy,SciPy,Matplotlib,Pandas,说明已经安装成功了!
  • Anaconda Navigtor:用于管理工具包 和 环境的 图形用户界面。点击 Anaconda Navigator ,第一次启用会进行初始化,耐心等待一段时间加载完成即可。

相关工具

Jupyter notebook 和 Jupyter Lab:基于 web 的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。可以在 Anaconda Navigtor 中启动 Jupyter notebook。 也可以在 CMD 中执行: jupyter notebook(推荐使用)或者 打开任意文件夹,shift+鼠标右击,然后再 shell 框中输入 jupyter notebook (推荐使用,此方法的好处是形成的 ipynb 文件会保存在当前的文件夹中,方便管理)Jupyter notebook 启动后,会打开一个网页

常用的编辑器或集成开发环境:

  • PyCharm:有免费社区版和收费的专业版,专为 Python 而生的 IDE
  • NotePad++:免费开源的编辑器,支持丰富的插件,支持中文界面
  • Atom:Github 推出的免费开源编辑器,支持丰富的插件
  • Sublime:收费的 Python 编辑器,支持丰富的插件
  • Spyder:Anaconda 内置的 IDE,开源。
  • IDLE:Python 官方的内置编辑器。
  • jupyter notebook:集成很多使用功能的编辑器同时兼具交互式的优点。 它支持多种语言,如 Python ( IPython ),Julia,R 等。可以在同一个界面中保存展示代码,展现运行结果,实时交互模式运行代码等功能,并且对新手非常友好,不需要过多的配置。
  • JupyterLab:是 jupyter notebook 的升级版本。它具有模块化结构,您可以在同一窗口中打开多个笔记本或文件(例如 HTML,文本,Markdown 等)作为选项卡。 它提供了更多类似 IDE 的体验。

然后运行:

安装:pip install jupyter
执行:jupyter qtconsole

Spyder:一个使用 Python 语言、跨平台的、科学运算集成开发环境。Spyder 编辑器截图如下:

以后就可以用这款编辑器来编写代码,它最大优点就是模仿 MATLAB 的“工作空间”。spyder.exe 放在安装目录下的 Scripts 里面,如我的是 C:\ProgramData\Anaconda2\Scripts\spyder.exe,直接双击就能运行。我们可以右键发送到桌面快捷方式,以后运行就比较方便了。

我们简单编写一个程序来测试一下安装是否成功,该程序用来打开一张图片并显示。首先准备一张图片,然后打开spyder,编写如下代码:

# -*- coding: utf-8 -*-
 
"""
Spyder Editor
This is a temporary script file.
"""
 
from skimage import io
 
img = io.imread('D:/yangmi.jpg')
io.imshow(img)

点击上面工具栏里的 绿色三角 运行程序,最终显示如下:

jupyterlab Jupyter Lab 的启用 和 Jupyter Notebook 方法一样,只需要将输入的 jupyter notebook 换成 jupyter lab 即可。点击 jupyterlab 下面的 Launch ,会在浏览器打开 http://localhost:8888/lab ,这里就可以输入 Python 代码啦,来一句 Hello World 吧。我们可以打开 Anaconda Navigator -> Launch jupyterlab ,也可以直接在浏览器输入 http://localhost:8888/lab (可以保存为书签)。如果是布置在云端,可以输入服务器域名(IP),是不是很爽?

VSCode:Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux。它内置了对JavaScript,TypeScript和Node.js的支持,并为其他语言(如C ++,C#,Java,Python,PHP,Go)和运行时(如.NET和Unity)提供了丰富的扩展生态系统。

Glueviz:Glue 是一个Python 库,用于探索相关数据集内部和之间的关系。其主要特点包括:

链接统计图形。使用Glue,用户可以创建数据的散点图,直方图和图像(2D和3D)。胶水专注于刷牙和链接范例,其中任何图形中的选择传播到所有其他图形。

灵活地跨数据链接。Glue使用不同数据集之间存在的逻辑链接来覆盖不同数据的可视化,并跨数据集传播选择。这些链接由用户指定,并且是任意灵活的。

完整的脚本功能。Glue是用Python编写的,并且建立在其标准科学库(即Numpy,Matplotlib,Scipy)之上。用户可以轻松地集成他们自己的python代码进行数据输入,清理和分析。

Orange3:交互式数据可视化。通过巧妙的数据可视化执行简单的数据分析。探索统计分布,箱形图和散点图,或深入了解决策树,层次聚类,热图,MDS和线性投影。即使您的多维数据也可以在2D中变得合理,特别是在智能属性排名和选择方面。老师和学生都喜欢它。在教授数据挖掘时,我们喜欢说明而不是仅仅解释。而橙色很棒。Orange在世界各地的学校,大学和专业培训课程中使用,支持数据科学概念的实践培训和视觉插图。甚至还有专门为教学设计的小部件。

附加组件扩展功能:使用Orange中可用的各种附加组件从外部数据源挖掘数据,执行自然语言处理和文本挖掘,进行网络分析,推断频繁项目集并执行关联规则挖掘。此外,生物信息学家和分子生物学家可以使用Orange通过差异表达对基因进行排序并进行富集分析。

3、pyenv

Python多环境管理 --- pyenv:https://blog.csdn.net/qq_27525611/article/details/113656812

pyenv 简介

pyenv 是 Linux 上的 Python 多版本管理,官方不支持windows。如果想在 Windows 中,有一个 fork 版本的 pyenv-win 可以再 windows 上使用

提到 Python 环境管理,更多人可能会首先想到 virtualenv。但与用于创建独立包环境的 virtualenv 不同,pyenv 的作用仅限于维护不同版本的 Python。它的使用不依赖于 Python,是一个简单、独立的纯 shell 脚本工具。pyenv 也可以以 pyenv-virtualenv 插件的形式支持 virtualenv,强烈建议使用。安装后比较方便的是可以在你 cd 到项目目录时自动切换相应的虚拟环境,而不用老是 source.

pyenv 在安装和配置完毕后可以实现:一键(命令)切换 全局本地 当前 shell 使用的 Python 版本

pyenv 的美好之处在于,他并没有使用将不同的 $PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 $PATH 的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而架空了后面的系统路径。

和 git 一样,pyenv 命令根据第一个参数委托给子命令。最常见的子命令有:

pyenv 基本使用

1. 安装:git clone https://github.com/pyenv/pyenv.git
2. 配置 pyenv 环境变量

echo 'export PYENV_ROOT="$HOME/pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

3. 基本命令

pyenv commands            查看 pyenv 命令
pyenv install --list      查看可安装的 python 版本
pyenv versions            查看已安装版本
pyenv version             查看当前使用的 python 版本
pyenv install -v 版本号   安装 python
pyenv rehash              刷新 python 已安装列表
pyenv uninstall 版本号    删除 python
pyenv global 版本号       设置当前全局python版本
pyenv local  版本号       设置局部python版本
pyenv local --unset       取消局部python版本设置,或者删除当前目录下的.python-version文件

4. 安装 pyenv-virtualenv 插件

git clone git://github.com/yyuu/pyenv-virtualenv.git ./pyenv/plugins/pyenv-virtualenv

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile

5. 使用 pyenv-virtualenv

pyenv virtualenv 版本号 name   创建一个虚拟环境,命名为name 创建好后可通过pyenv versions来查看
pyenv activate name            切换到 name 虚拟环境中
pyenv deactivate               推出虚拟环境
pyenv virtualenv-delete name   删除 name 环境

简单使用

pyenv version          # 查看当前版本
pyenv versions         # 查看所有版本
pyenv install --list   # 查看所有可安装的版本
pyenv install 3.6.5    # 安装指定版本
pyenv rehash           # 安装新版本后rehash一下
pyenv uninstall 3.5.2  # 删除指定版本
pyenv global 3.6.5     # 指定全局版本
pyenv global 3.6.5 2.7.14   # 指定多个全局版本, 3版本优先
# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的

效果:

包管理插件 pyenv-virtualenv

首先下载:

$ git clone https://github.com/pyenv/pyenv-virtualenv.git
$.pyenv/plugins/pyenv-virtualenv

克隆完成后添加如下到 shell 配置文件(mac的话是.zshrc):$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

实际上 mac 用户直接 brew 安装就可以了...

$ brew install pyenv-virtualenv
$ eval "$(pyenv init -)"
$ eval "$(pyenv virtualenv-init -)"

使用:

$ pyenv virtualenv 3.6.5 v365env      # 创建一个3.6.5版本的虚拟环境, 命名为v365env
$ pyenv activate v365env         #  激活虚拟环境
$ pyenv deactivate v365env    # 关闭虚拟环境

当切换 python 解释器的时候对应的 pip 和包库也会一并切换过去,而且可以为指定版本的解释器创建项目所需的虚拟环境,切换的时候也异常简单。

常用的做法是为每个项目创建不同的虚拟环境,当进入该环境的时候就可以随便浪而不用担心影响到其它项目,搭配Pycharm使用效果更佳。

4、virtualenv

​Github: https://github.com/pypa/virtualenv
Doc:  https://virtualenv.pypa.io/en/latest/

virtualenv 通过创建一个虚拟化的 python 运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰。然后在每个环境中安装需要的软件包(配合 pip 使用),这一系列的环境是相互隔离的。作为一个独立的环境就不容易出现版本问题,还方便部署。

为什么要用 virtualenv ?

  •  隔离项目之间的第三方包依赖,如A项目依赖 django1.2.5,B项目依赖 django1.3。
  •  为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一翻。在服务器上都不用安装virtualenv,直接将virtualenv创建的目录拷贝到服务器,修改路径,进行虚拟环境迁移就可以用了
  •  还可以用在没有 root 权限的 python 环境配置上,如果没有 root 权限,可以先自己搞一个 virtualenv,再在 virtualenv 中使用 pip 安装。(系统中没有pip,并且也没有root权限使用sudo apt-get安装)

虚拟环境中安装的库的位置在哪 ?

在虚拟环境中安装的库在 env/Lib/site-packages/ 目录里,而不是在系统的 python 的 Lib/site-packages 目录里,这就是为什么虚拟环境是分开的。

注意:virtualenv 创建的虚拟环境与主机的 Python 环境完全无关,你主机配置的库不能在 virtualenv 中直接使用。你需要在虚拟环境中利用 pip install 再次安装配置后才能使用。

安装 virtualenv

安装 ( linux、windows ):pip install virtualenv

如果安装不成功也可以下载 virtualenv源码 package,通过执行 setup.py 来安装 virtualenv。同时因为 python2 和 python3 的不同,因此也有了两种 pip 和 pip3 两种 python 包安装工具,而两种工具安装的

virtualenv 也是不相同的,py2 安装的 virtualenv 虚拟化出来的python运行环境是python2的,py3安装的virtualenv默认虚拟化环境则是python3的。
网速较好可以通过 pip 来安装, 系统没有 pip 的请参考 pip2 或 pip3

pip install virtualenv
pip install setuptools     # 如果提示安装就执行这个

virtualenv 创建

mkdir myproject              创建项目文件夹 myproject
cd myproject                 进入项目目录
virtualenv myproject_ENV     创建虚拟环境 myproject_ENV

这时候会发现在 myproject 目录下新增了一个 myproject_ENV 的文件夹。

virtualenv 的使用

cd myproject_ENV            进入虚拟环境目录 myproject_ENV
source ./bin/activate        激活

这时候在命令行的最左边会显示该虚拟环境的名称。不妨使用下面的命令查看一下变化:

which python
which pip
pip list

如果想要退出虚拟环境,使用这个命令就可以了:deactivate

基本使用

$ virtualenv my_venv                          创建虚拟环境,名字叫 my_venv
$ virtualenv -p /usr/bin/python2.7 my_venv    为环境指定Python解释器: 
$ source venv/bin/activate                 激活虚拟环境
$ deactivate                               停止虚拟环境。退出虚拟环境
删除虚拟环境    直接删除目录即可

激活虚拟环境之后就可以通过命令 pip install 来安装 python 包了,这里安装 python 包就不需要 root 权限了,直接就可以安装十分方便。

在 venv 的环境中,使用 pip 安装的包都不会再是全局性的包,只会在当前的虚拟环境中起作用,避免了污染系统环境。

运行 pip 带 –no-site-packages 选项的 virtualenv 将不会包括全局安装的包。这可用于保持包列表干净, 以防以后需要访问它。(这在 virtualenv 1.7及之后是默认行为)

virtualenv 各种其他命令如下:

$ virtualenv [OPTIONS] DEST_DIR

选项:
--version        显示当前版本号。
-h, --help       显示帮助信息。
-v, --verbose    显示详细信息。
-q, --quiet
不显示详细信息。
-p PYTHON_EXE, --python=PYTHON_EXE    
                    指定所用的python解析器的版本,比如 --python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 
                默认使用的是当前系统安装(/usr/bin/python)的python解析器
--clear             清空非root用户的安装,并重头开始创建隔离环境。
--no-site-packages        令隔离环境不能访问系统全局的site-packages目录。
--system-site-packages    令隔离环境可以访问系统全局的site-packages目录。
--unzip-setuptools        安装时解压Setuptools或Distribute
--relocatable             重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。
--distribute              使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。
--extra-search-dir=SEARCH_DIRS       用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。
--never-download                     禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。
--prompt==PROMPT                     定义隔离环境的命令行前缀。

使用

[root@localhost home]# virtualenv MTP            # 创建名为MTP的虚拟环境
New python executable in /home/MTP/bin/python
Installing setuptools, pip, wheel...done.
[root@localhost home]# ls                               #  会在当前目录生成一个目录
MTP
[root@localhost home]# cd MTP/
[root@localhost MTP]# ls
bin  include  lib  lib64  pip-selfcheck.json
[root@localhost MTP]# source ./bin/activate       #  启动虚拟环境后, 此时命令行会多一个(MTP)
(MTP) [root@localhost MTP]# pip freeze    # MTP为虚拟环境名称, 接下来所有模块都只会安装到该目录
(MTP) [root@localhost MTP]# pip list
pip (9.0.0)
setuptools (28.7.1)
wheel (0.30.0a0)
(MTP) [root@localhost MTP]# deactivate      #  退出虚拟环境, 将回到系统默认的Python解释器环境
[root@localhost MTP]#

删除

删除一个虚拟环境, 只需要删除它的目录.  有必要请执行( rm -rf venv )

5、Virtualenvwrapper

Virtualenvwrapper

VirtualEnvWrapper 是 VirtualEnv 的扩展包,进行了一些命令行上的封装。它提供了一系列命令用于更方便的 创建/激活/管理/销毁 虚拟环境。

  • 1. 将所有虚拟环境整合在一个目录下
  • 2. 管理(新增,删除,复制)虚拟环境
  • 3. 切换虚拟环境 …

virtualenvwrapper 提供环境名字的 tab 补全功能.

$ sudo pip install virtualenvwrapper            安装 virtualenvwrapper 
$ source /usr/local/bin/virtualenvwrapper.sh    要加载运行virtualenvwrapper.sh文件才行 

如果不想每次 都 source,可以写道 bashrc 中

echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
source  ~/.bashrc
source $(find /usr -type f -name virtualenvwrapper.sh)

创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs
在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh
运行: source ~/.bashrc
此时virtualenvwrapper就可以使用了。

创建虚拟环境 

默认创建的虚拟环境位于 ~/.virtualenvs ,可以通过环境变量 $WORKON_HOME 来定制。 

$ mkvirtualenv test2-env     创建 test2-env 虚拟环境后,会自动激活环境,注意看Shell提示符的改变:
(test2-env)CL-USER> test2-env$ 

相关命令

$ mkvirtual [环境名称]       创建 虚拟环境
$ lsvirtualenv        列出所有虚拟环境
$ workon test2-env    激活 test2-env 虚拟环境 
$ cdvirtualenv        进入到当前激活的虚拟环境的目录中
$ cdsitepackages      进入到当前激活的虚拟环境的 site-packages 目录 
$ lssitepackages      列出 site-packages 目录的所有软件包 
$ deactivate          停止虚拟环境。离开虚拟环境 
$ rmvirtualenv test2-env    删除虚拟环境 

virtualenvwrapper-win

windows 安装 virtualenvwrapper-winpip install virtualenvwrapper-win

1. 新建虚拟环境:mkvirtualenv env_name

C:\Users\tianw1>mkvirtualenv py27_dev1
New python executable in py27_dev1\Scripts\python.exe
Installing setuptools, pip, wheel...done.

(py27_dev1) C:\Users\tianw1>pip list
pip (7.1.2)
setuptools (18.2)
wheel (0.24.0)

注意,创建虚拟环境时,不会自动引用原始 Python 环境中的软件包,但是可以通过 "--system-site-packages" 参数来使虚拟环境引用原始 Python 环境中的软件包。

C:\Users\tianw1>mkvirtualenv --system-site-packages py27_dev2
New python executable in py27_dev2\Scripts\python.exe
Installing setuptools, pip, wheel...done.
(py27_dev2) C:\Users\tianw1>pip list

2. 离开虚拟环境:deactivate

(py27_dev1) C:\Users\tianw1>deactivate
C:\Users\tianw1> 

3. 列出虚拟环境列表:workon 或 lsvirtualenv

C:\Users\tianw1>workon
C:\Users\tianw1>lsvirtualenv

4. 删除虚拟环境:rmvirtualenv env_name

6、venv (Python 自带 )

https://docs.python.org/3/library/venv.html

venv 是 Python3.3+ 的版本的一个模块,通过这个模块可以创建与系统python隔离的轻量级 "虚拟环境"。每一个虚拟环境都有其自己的 Python二进制(允许有不同的Python版本创作环境),并且可以拥有自己独立的一套 Python包。

-m 参数:以脚本形式运行库模块

python3 -m venv XXX

XXX 指你要创建的文件名。因为在执行这行命令之后,就会把与 Python 虚拟环境有关的文件放到 XXX 里面。之后只需要运行这个里面的 activate 文件就行。Linux下的命令如下:

$ source <XXX>/bin/activate

Windows 的 cmd 下是:

C:> <XXX>/Scripts/activate.bat

在PowerShell下是:

PS C:> <venv>/Scripts/Activate.ps1

但是为了避免运行不信任的脚本,PowerShell 下此脚本可能被禁止。此时输入命令:

set-executionpolicy remotesigned

然后更改执行策略就可以了。

退出环境之前输入:

$ deactivate

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值