目录
由于在学习 python 的过程中使用到的库越来越多,在 python 的安装目录下占的存储空间越来越大,对于有强迫症的我来说这是不能容忍的。虽然之前学习了 docker 容器的一些相关知识,了解到 docker 可以在不同的项目搭建各自所依赖的开发环境,做到完全开发环境的隔离,但是 docker 的使用依赖于 Linux,在 windows 依赖于虚拟机,而且对于个人目前对 python 的使用仅限于在 windows 下个人实用,仅仅能通过 sublime-text 一键运行即可,无需大中小型项目的开发,于是我将目光转向了 python 的虚拟环境。
pip install virtualenv
mkdir myproject && cd myproject
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 目录
source spider/Scripts/activate
此时 使用 pip list 命令会发现当前环境只有几个基础的包。
Package Version
---------- -------
pip 19.3.1
setuptools 42.0.2
wheel 0.33.6
pip install requests,bs4
此时安装的包都只会在当前环境下,不会下载到真实环境。
deactivate
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
由于 virtualenv 每次进入和切换 虚拟环境都要手动 输入启动程序 activate 路径,很不方便,于是有了 virtualenvwrapper。
pip3 install virtualenvwrapper # 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
mkvirtualenv my_django115
这会在 ~/Envs 中创建 my_django115 文件夹。
在虚拟环境上工作:激活虚拟环境my_django115
workon my_django115
再创建一个新的虚拟环境
mkvirtualenv my_django2
virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境,并且很难记住它们的名字时,这就显得很有用。
workon 可以在多个虚拟环境中来回切换
workon django1.15
workon django2.0
deactivate
rmvirtualenv my_django115
注意:删除虚拟环境,需要先退出虚拟环境
lsvirtualenv
列举所有的环境
cdvirtualenv
导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
cdsitepackages
和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages
显示 site-packages 目录中的内容。
在 windows 环境下并不能直接使用 virtualenvwrapper,只能安装相应的 virtualenvwrapper 包。
pip3 install virtualenvwrapper-win # windows 环境下
virtualenvwrapper-win 的使用与 Linux 平台下的 virtualenvwrapper 使用基本一致,更多关于使用信息可以参见 官方文档
使用 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 似乎要自行设置 环境变量。