Python虚拟环境 Virtualenv 、 Virtualenvwrapper
在开发不同项目中,可能需要不同的 Python 版本 ,还有各种依赖问题;在Python开发环境中,为了解决这些问题,我们使用虚拟环境( virtualenv )来创建独立的Python环境,将不同项目的运行环境隔离开来。
使用virtualenvwrapper管理虚拟环境(virtualenv),统一管理虚拟环境的目录,省去source步骤
一、Virtualenv 虚拟环境
-
Linux
1.安装virtualenv
[root@38a home]# pip install virtualenv
2.进入存放虚拟环境的文件夹(自定义)
[root@38a home]# cd /home/python_env
3.创指定版本建虚拟环境
virtualenv -p python执行文件路径(不同版本) 自定义虚拟环境名称
[root@38a python_env]# virtualenv -p /usr/local/python3/bin/python3 python_3.6.4_sen # 创建过程信息如下: created virtual environment CPython3.6.4.final.0-64 in 124ms creator CPython3Posix(dest=/home/python_env/python_3.6.4_sen, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv) added seed packages: pip==20.1.1, setuptools==47.3.1, wheel==0.34.2 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
4.virtualenv会创建一个与环境名字相同的文件夹,这个文件夹就是这个虚拟环境的根目录
[root@38a python_env]# ll python_3.6.4_sen total 12 drwxr-xr-x 2 root root 4096 Jul 3 02:32 bin drwxr-xr-x 3 root root 4096 Jul 3 02:32 lib -rw-r--r-- 1 root root 260 Jul 3 02:32 pyvenv.cfg
5.激活虚拟环境
[root@38a python_env]# source python_3.6.4_sen/bin/activate # 激活成功 (python_3.6.4_sen) [root@38a python_env]#
6.安装第三方包
(python_3.6.4_sen) [root@38a python_env]# pip3 install request # 安装信息 ollecting request xxxxxx Successfully installed get-0.0.0 post-0.0.0 query-string-0.0.0 request-0.0.0
7.查看虚拟环境的第三方包
(python_3.6.4_sen) [root@38a python_env]# pip3 freeze get==0.0.0 post==0.0.0 query-string==0.0.0 request==0.0.0
8.退出虚拟环境
(python_3.6.4_sen) [root@38a python_env]# deactivate
8.删除虚拟环境
# 删除对应文件夹即可
-
Windows
1.安装virtualenv
D:python_env> pip install virtualenv
2.创建虚拟环境
virtualenv -p python执行文件路径(不同版本) 自定义虚拟环境名称
D:python_env> virtualenv -p D:Anacondapython.exe python_3.6.5_sen # 创建过程信息如下: D:python_env>virtualenv python_3.6.5_sen created virtual environment CPython3.6.4.final.0-64 in 805ms creator CPython3Windows(dest=D:python_envpython_3.6.5_sen, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:Users hinkAppDataLocalpypavirtualenv) added seed packages: pip==20.1.1, setuptools==47.3.1, wheel==0.34.2 activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
3.激活虚拟环境
D:python_env> .python_3.6.5_senScriptsactivate.bat (python_3.6.5_sen) D:python_env>
4.安装第三方包
(python_3.6.5_sen) D:python_env> pip install redis # 安装信息 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting redis Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a7/7c/24fb0511df653cf1a5d938d8f5d19802a88cef255706fdda242ff97e91b7/redis-3.5.3-py2.py3-none-any.whl (72 kB) |████████████████████████████████| 72 kB 112 kB/s Installing collected packages: redis Successfully installed redis-3.5.3
5.查看虚拟环境的第三方包
(python_3.6.5_sen) D:python_env> pip freeze redis==3.5.3
6.退出虚拟环境
(python_3.6.5_sen) D:python_env> deactivate
7.删除虚拟环境
# 删除对应文件夹即可
-
其他
# 查看virtualenv版本 [root@38a python_env]# virtualenv --version # 将本机安装的第三方包带入虚拟环境 [root@38a python_env]# virtualenv -p 路径 --system-site-packages python_3.6.4_env # 不将本机的第三方包带入虚拟环境(virtualenv20以后,默认是--no-site-packages) [root@38a python_env]# virtualenv -p 路径 --no-site-packages python_3.6.4_env
二、Virtualenvwrapper 管理虚拟环境
-
Linux
1.安装
[root@38a home]# pip3 install virtualenvwrapper
2.创建存放虚拟环境的目录
[root@38a home]# mkdir python_env
3..设置环境变量
[root@38a home]# vim ~/.bashrc # 写入以下几行代码 export WORKON_HOME=/home/python_env # 设置virtualenv管理目录 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 添加参数,生成干的环境,virtualenv大于20可不用配置该条 export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3 # 指定python解释器 source /usr/local/python3/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
4.刷新~/.bashrc文件, 使配置生效
[root@38a home]# source ~/.bashrc
5.创建指定版本的虚拟环境
[root@38a home]# mkvirtualenv -p /usr/local/python3/bin/python3 python3.6.4_env
6.查看所有的虚拟环境
[root@38a home]# lsvirtualenv python2.7 ========= python3.6.4_env =============== # 注:python2.7是我在python_env目录下使用virtualenv直接创建的虚拟环境 # [root@38a home]# workon 也可查看所有虚拟环境
7.切换虚拟环境
(python3.6.4_env) [root@38a python_env]# workon python2.7 (python2.7) [root@8a python_env]#
8.退出虚拟环境
(python3.6.4_env) [root@38a python_env]# deactivate
9.删除虚拟环境
(python3.6.4_env) [root@38a python_env]# rmvirtualenv python2.7 # 或删除文件夹 Removing python2.7...
-
Windows
1.安装
D:python_env> pip install virtualenvwrapper-win # windows下加-win
2.设置环境变量
# 默认创建的虚拟环境在C:用户用户名Envs下,可通过环境变量WORKON_HOME来修改 # 控制面板——》系统和安全——》系统——》高级系统设置——》环境变量——》新建系统变量——》——》 # 变量名:WORKON_HOME # 变量值:D:python_env (自定义路径) # 重新打开cmd
2.创建指定版本的虚拟环境
D:python_env> mkvirtualenv --python==D:Anacondapython.exe python3
3.查看所有的虚拟环境
(python3) D:python_env> lsvirtualenv dir /b /ad "D:python_env" ============================================================================== python_3 python_3.6.5 # 注:(python3) D:python_env> workon 也可查看所有虚拟环境
4.切换虚拟环境
(python_3) D:python_env> workon python_3.6.5 (python_3.6.5) D:python_env>
5.退出虚拟环境
(python_3.6.5) D:python_env> deactivate
6.删除虚拟环境
D:python_env> rmvirtualenv python3.6.5 # 或删除文件夹 Deleted D:python_envpython3.6.5
-
其他命令
lssitepackages # 查看所有安装的包 cdvirtualenv # 切换到当前虚拟环境所在目录