windows上的python3虚拟环境(virtualenvwrapper-win)的应用

本文大部分内容来源于博文 python开发之virtualenv与virtualenvwrapper讲解

目录

1. 前言

  由于在学习 python 的过程中使用到的库越来越多,在 python 的安装目录下占的存储空间越来越大,对于有强迫症的我来说这是不能容忍的。虽然之前学习了 docker 容器的一些相关知识,了解到 docker 可以在不同的项目搭建各自所依赖的开发环境,做到完全开发环境的隔离,但是 docker 的使用依赖于 Linux,在 windows 依赖于虚拟机,而且对于个人目前对 python 的使用仅限于在 windows 下个人实用,仅仅能通过 sublime-text 一键运行即可,无需大中小型项目的开发,于是我将目光转向了 python 的虚拟环境。

2. virtualenv 库

2.1 安装

pip install virtualenv

2.2 使用(git-bash)

2.2.1 创建项目目录并进入

mkdir myproject && cd myproject

2.2.2 新建一个虚拟环境

virtualenv sipder
Using base prefix 'D:\\Program Files\\Python38'
New python executable in E:\python\spider\Scripts\python.exe
Installing setuptools, pip, wheel...
done.

可以看到在当前目录下出现一个 spider 目录

2.2.3 进入虚拟环境

 source spider/Scripts/activate

此时 使用 pip list 命令会发现当前环境只有几个基础的包。

Package    Version
---------- -------
pip        19.3.1
setuptools 42.0.2
wheel      0.33.6

2.2.4 安装第三方包

pip install requests,bs4

此时安装的包都只会在当前环境下,不会下载到真实环境。

2.2.5 退出venv环境

deactivate

2.2.6 原理

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

3. virtualenvwrapper 库

由于 virtualenv 每次进入和切换 虚拟环境都要手动 输入启动程序 activate 路径,很不方便,于是有了 virtualenvwrapper。

3.1 安装virtualenvwrapper

pip3 install virtualenvwrapper # Linux 环境

3.2 设置Linux的环境变量

把下面两行代码添加到 ~/.bashrc文件中
打开文件

vim ~/.bashrc

写入以下两行代码

export WORKON_HOME=~/Envs   # 设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   # 添加 virtualenvwrapper 的参数,生成隔离的环境
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3     # 指定python解释器
source /usr/local/bin/virtualenvwrapper.sh # 执行virtualenvwrapper安装脚本

读取文件,使得生效,此时已经可以使用virtalenvwrapper,具体的 python 解释器和virtualenvwrapper.sh脚本位置可能不一样,自行更改。

source ~/.bashrc

这样,每次启动就会加载virtualenvwrapper

3.3 virtualenvwrapper 的基本使用

3.3.1 创建一个虚拟环境

mkvirtualenv my_django115

这会在 ~/Envs 中创建 my_django115 文件夹。

在虚拟环境上工作:激活虚拟环境my_django115

workon my_django115

再创建一个新的虚拟环境

mkvirtualenv my_django2

virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境,并且很难记住它们的名字时,这就显得很有用。

3.3.2 切换虚拟环境

workon 可以在多个虚拟环境中来回切换

workon django1.15
workon django2.0

3.3.3 退出虚拟环境

deactivate

3.3.4 删除虚拟环境

rmvirtualenv my_django115

注意:删除虚拟环境,需要先退出虚拟环境

3.4 常用其他命令

lsvirtualenv

列举所有的环境

cdvirtualenv

导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。

cdsitepackages

和上面的类似,但是是直接进入到 site-packages 目录中。

lssitepackages

显示 site-packages 目录中的内容。

完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

4. vitualenvwrapper-win 库

在 windows 环境下并不能直接使用 virtualenvwrapper,只能安装相应的 virtualenvwrapper 包。

4.1 安装

pip3 install virtualenvwrapper-win # windows 环境下

4.2 使用

virtualenvwrapper-win 的使用与 Linux 平台下的 virtualenvwrapper 使用基本一致,更多关于使用信息可以参见 官方文档

4.3 修改默认虚拟环境存储地址

使用 virtualenvwrapper-win 所创建的 虚拟环境 默认位置为 C:\Users\username\Envs ,对于习惯了将软件安装在 非 C盘的我是不能容忍的!修改步骤如下:

1.下载 virtualenvwrapper-win 源码

git clone git://github.com/davidmarble/virtualenvwrapper-win.git

2.替换默认存储地址

用编辑器打开源码,使用编辑器的全局搜索功能或者其他骨灰级玩家工具(如 sed 命令等),搜索关键字 ”Envs“,发现虚拟环境的存储地址被默认为 "%USERPROFILE%\Envs",通过

cmd 命令行使用 echo %USERPROFILE% 命令会发现输出的是当前用户地址(即上文的 C:\Users\username\ ),因此只要将此变量替换为 自己想要的 地址就可以了,可以替换为一个绝对路径,也可以在 windows 下新建一个环境变量,使用 % % 解析的方式。

3.安装修改后的包

根据官方文档的提示,在源码目录下运行如下命令:

python setup.py install   # or pip install .

即可安装成功。

注意:需要注意的是,由于 virtualenvwrapper-win 是 windows 下的特定版本,其命令似乎只能在 windows 平台下的 自带的命令行工具(如 cmd)下执行,git-bash 似乎要自行设置 环境变量。

posted @ 2019-12-04 22:48  Dayeliu  阅读(560)  评论(0)    收藏  举报