Python三神器之virtualenv&virtualenvwrapper

本文介绍了如何使用virtualenv创建独立的Python环境,并利用virtualenvwrapper简化环境管理流程。涵盖安装步骤、环境初始化、新建及删除环境等实用操作。

virtualenv是一个用于创建独立Python环境的工具,可以解决多项目之间依赖库版本不一致的问题,每个虚拟环境都是一个独立的Python环境,可以安装只属于这个环境的库。

virtualenvwrapper是virtualenv的一个扩展工具,它可以是我们在使用、管理虚拟环境时更简便、易用。

一. 安装

1. 安装virtualenv

[root@localhost bin]# pip3 install virtualenv
Collecting virtualenv
  Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
    100% |████████████████████████████████| 1.8MB 770kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
[root@localhost bin]# ln -s /usr/local/python3/bin/virtualenv /usr/local/bin/virtualenv	#创建virtualenv的软连接
[root@localhost ~]# ln -s /usr/local/python3/bin/virtualenv-clone /usr/local/bin/virtualenv-clone #创建virtualenv-clone的软连接
[root@localhost ~]#

在系统目录/usr/local/bin下创建virtualenv和virtualenv-clone的软连接,是因为virtualenvwrapper会使用在(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)下的virtualenv和virtualenv-clone,所以必须保证virtualenv和virtualenv-clone的存在。

2. 安装virtualenvwrapper

[root@localhost ~]# pip3 install virtualenvwrapper
Collecting virtualenvwrapper
  Downloading virtualenvwrapper-4.8.1-py2.py3-none-any.whl
Collecting virtualenv-clone (from virtualenvwrapper)
  Downloading virtualenv-clone-0.2.6.tar.gz
Collecting stevedore (from virtualenvwrapper)
  Downloading stevedore-1.26.0-py2.py3-none-any.whl
Requirement already satisfied: virtualenv in /usr/local/python3/lib/python3.6/site-packages (from virtualenvwrapper)
Collecting pbr!=2.1.0,>=2.0.0 (from stevedore->virtualenvwrapper)
  Downloading pbr-3.1.1-py2.py3-none-any.whl (99kB)
    100% |████████████████████████████████| 102kB 497kB/s
Collecting six>=1.9.0 (from stevedore->virtualenvwrapper)
  Downloading six-1.10.0-py2.py3-none-any.whl
Installing collected packages: virtualenv-clone, pbr, six, stevedore, virtualenvwrapper
  Running setup.py install for virtualenv-clone ... done
Successfully installed pbr-3.1.1 six-1.10.0 stevedore-1.26.0 virtualenv-clone-0.2.6 virtualenvwrapper-4.8.1
[root@localhost ~]#

我们通常都是通过virtualenvwrapper去使用、管理我们的虚拟环境,所以这里只介绍virtualenvwrapper的用法。

二. 使用

1. 初始化

1.1. shell初始化(单次有效,shell关闭后需重新初始化)

[root@localhost ~]# export WORKON_HOME=~/Envs		#设置环境变量WORKON_HOME
[root@localhost ~]# mkdir -p $WORKON_HOME		#创建环境变量WORKON_HOME指定的目录
[root@localhost ~]# echo $WORKON_HOME			#显示环境变量WORKON_HOME的值
/root/Envs
[root@localhost ~]# export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3	#设置环境变量VIRTUALENVWRAPPER_PYTHON
[root@localhost ~]# echo $VIRTUALENVWRAPPER_PYTHON	#显示环境变量VIRTUALENVWRAPPER_PYTHON的值
/usr/bin/python3
[root@localhost ~]# source /usr/local/python3/bin/virtualenvwrapper.sh
virtualenvwrapper.user_scripts creating /root/Envs/premkproject
virtualenvwrapper.user_scripts creating /root/Envs/postmkproject
virtualenvwrapper.user_scripts creating /root/Envs/initialize
virtualenvwrapper.user_scripts creating /root/Envs/premkvirtualenv
virtualenvwrapper.user_scripts creating /root/Envs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /root/Envs/prermvirtualenv
virtualenvwrapper.user_scripts creating /root/Envs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /root/Envs/predeactivate
virtualenvwrapper.user_scripts creating /root/Envs/postdeactivate
virtualenvwrapper.user_scripts creating /root/Envs/preactivate
virtualenvwrapper.user_scripts creating /root/Envs/postactivate
virtualenvwrapper.user_scripts creating /root/Envs/get_env_details
[root@localhost ~]#

其中设置环境变量VIRTUALENVWRAPPER_PYTHON是因为我的系统安装了两个版本的Python,默认路径/usr/bin/python是Python2的目录,而virtualenvwrapper我是用Python3安装的,所以要手动讲默认的VIRTUALENVWRAPPER_PYTHON变量修改成Python3的目录,如果是使用默认版本的Python安装的virtualenvwrapper可以省略此步骤。

1.2. shell启动文件初始化(永久有效,shell启动时自动初始化)

在~/.bashrc文件最后添加以下语句,保存后shell下执行source ~/.bashrc。~/.bashrc文件是当前用户的shell启动配置文件,如果想要修改全局的shell,可以修改/etc/bashrc文件。

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export PROJECT_HOME=$HOME/Devel
source /usr/local/python3/bin/virtualenvwrapper.sh

2. 新建虚拟环境

[root@localhost ~]# mkvirtualenv env1
Using base prefix '/usr/local/python3'
New python executable in /root/.virtualenvs/env1/bin/python3.6
Also creating executable in /root/.virtualenvs/env1/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /root/.virtualenvs/env1/bin/predeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/env1/bin/postdeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/env1/bin/preactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/env1/bin/postactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/env1/bin/get_env_details
(env1) [root@localhost etc]# workon
env1
(env1) [root@localhost etc]#

3. 新建临时的虚拟环境(退出环境后自动删除)

[root@localhost ~]# mktmpenv
Using base prefix '/usr/local/python3'
New python executable in /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/python3.6
Also creating executable in /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/predeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/postdeactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/preactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/postactivate
virtualenvwrapper.user_scripts creating /root/.virtualenvs/tmp-46e87484b9f3cfc/bin/get_env_details
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-46e87484b9f3cfc) [root@localhost tmp-46e87484b9f3cfc]#

4. 列出所有环境

[root@localhost ~]# lsvirtualenv
env1
====




tmp-46e87484b9f3cfc
===================




[root@localhost ~]#

5. 查看指定环境的详情

[root@localhost ~]# showvirtualenv env1


[root@localhost ~]#

6. 删除指定环境

[root@localhost ~]# rmvirtualenv env1
Removing env1...
[root@localhost ~]#

删除环境之前必须deactivate待删除的环境。mktmpenv创建的临时虚拟环境,不需要手动删除,在deactivate后其会自动被删除。

7. 复制虚拟环境(支持得不是很好,谨慎使用)

[root@localhost ~]# cpvirtualenv env1 env2 #使用到virtualenv-clone
Copying env1 as env2...
(env2) [root@localhost ~]#

8. 所有虚拟环境下执行指定命令

[root@localhost ~]# allvirtualenv pip install -U pip
env1
====
Requirement already up-to-date: pip in ./lib/python3.6/site-packages


env2
====
Requirement already up-to-date: pip in ./lib/python3.6/site-packages


[root@localhost ~]#

9. 列出所有虚拟环境或切换虚拟环境

[root@localhost ~]# workon	#列出所有虚拟环境
env1
env2
[root@localhost ~]# workon env1		#切换至虚拟环境env1
(env1) [root@localhost ~]#

10. 从当前虚拟环境中退回到系统环境(使用系统中的python)

(env1) [root@localhost ~]# deactivate
[root@localhost ~]#

11. 改变当前的工作目录至当前虚拟环境$VIRTUAL_ENV的指定目录或其子目录

(env1) [root@localhost ~]# pwd
/root
(env1) [root@localhost ~]# cdvirtualenv
(env1) [root@localhost env1]# pwd
/root/.virtualenvs/env1
(env1) [root@localhost env1]# cd ~
(env1) [root@localhost ~]# cdvirtualenv bin
(env1) [root@localhost bin]# pwd
/root/.virtualenvs/env1/bin
(env1) [root@localhost bin]#

12. 改变当前的工作目录至当前虚拟环境$VIRTUAL_ENV下的site-packages目录或site-packages的子目录

(env1) [root@localhost ~]# pwd
/root
(env1) [root@localhost ~]# cdsitepackages
(env1) [root@localhost site-packages]# pwd
/root/.virtualenvs/env1/lib/python3.6/site-packages
(env1) [root@localhost site-packages]# cd ~
(env1) [root@localhost ~]# cdsitepackages pip
(env1) [root@localhost pip]# pwd
/root/.virtualenvs/env1/lib/python3.6/site-packages/pip
(env1) [root@localhost pip]#

13. 列出当前的虚拟环境site-packages目录下的内容

(env1) [root@localhost ~]# lssitepackages
easy_install.py  pip-9.0.1.dist-info  __pycache__  setuptools-36.4.0.dist-info  wheel-0.30.0.dist-info
pip              pkg_resources        setuptools   wheel
(env1) [root@localhost ~]# cdsitepackages
(env1) [root@localhost site-packages]# pwd
/root/.virtualenvs/env1/lib/python3.6/site-packages
(env1) [root@localhost site-packages]# ls
easy_install.py  pip-9.0.1.dist-info  __pycache__  setuptools-36.4.0.dist-info  wheel-0.30.0.dist-info
pip              pkg_resources        setuptools   wheel
(env1) [root@localhost site-packages]#













内容概要:本文围绕“基于改进型SVPWM调制的钳位型单相电平NPC逆变器中点电位平衡”展开仿真研究,系统探讨了如何通过改进的空间矢量脉宽调制(SVPWM)策略有效抑制单相电平中性点钳位(NPC)逆变器中存在的中点电位漂移问题。研究依托Simulink仿真平台构建系统模型,详细分析了不同调制策略对中点电压波动的影响机制,验证了所提出控制方法在提升输出波形质量、增强系统稳定性方面的有效性。同时,文档附带了多项相关科研主题资源,涵盖多电平逆变器控制、虚拟同步发电机(VSG)、微电网能量管理、信号处理、路径规划、机器学习与深度学习等多个前沿方向,展现了较强的综合性与科研实用价值。; 适合人群:电气工程、自动化、新能源科学与工程、电力电子与电力传动等领域的硕士、博士研究生,以及从事电力系统控制、可再生能源并网技术研究的科研人员与工程技术人员。; 使用场景及目标:① 深入理解电平NPC逆变器的工作原理及中点电位不平衡的成因与危害;② 掌握改进型SVPWM调制策略的设计思想及其在中点电位控制中的实现路径;③ 利用Simulink搭建电力电子系统仿真模型,开展控制算法的验证与优化;④ 拓展至相多电平逆变器、VSG构网型控制、微电网协同优化等高级课题的研究与复现。; 阅读建议:建议读者结合Simulink仿真环境进行实操演练,重点关注调制策略中开关状态选择与作用时间分配对中点电荷累积的影响机制。初学者应先夯实传统SVPWM理论基础,再逐步过渡到改进策略的学习;进阶研究者可尝试将该方法推广至多目标协同控制或引入智能优化算法进一步提升动态响应性能。
内容概要:本文档聚焦于电平ANPC并网逆变器的先进控制策略研究,重点阐述了一种融合DPWMA(离散脉宽调制)调制、正负序电流分离控制与电网电压前馈补偿的复合控制方法,并基于Simulink平台完成了系统建模与仿真验证。该方法旨在提升逆变器在电网电压不平衡等复杂工况下的动态响应性能与运行稳定性,特别针对低电压穿越(LVRT)能力进行了优化设计。研究内容还涵盖了中点电位平衡控制、虚拟同步发电机(VSG)技术以及构网型逆变器的双闭环控制架构,体现了对高阶电力电子变换系统深层次的建模与控制探索。文档同时罗列了大量相关的MATLAB/Simulink仿真实例,覆盖电力电子、新能源并网、优化算法、机器学习、路径规划等多个前沿科研领域,强调了科研工作中“借力”现有成果与追求“创新”突破的双重重要性。; 适合人群:从事电力电子与电力传动、新能源发电系统、微电网与智能电网控制等相关领域的研究生、科研人员及工程技术人员,要求具备扎实的电力系统基础知识、现代控制理论背景以及熟练的MATLAB/Simulink仿真操作能力。; 使用场景及目标:①深入研究电平ANPC逆变器在不平衡电网条件下的高性能控制策略;②实现DPWMA调制技术与正负序电流独立控制的协同仿真与性能评估;③设计并验证融合电网前馈补偿与中点电位平衡的复合控制算法;④作为高级电力电子系统仿真与构网型控制技术的学习范本与项目开发参考。; 阅读建议:建议读者结合文档指引,通过指定公众号或网盘获取完整的仿真模型资源,在Simulink环境中动手复现核心控制模块,重点关注正负序分离算法、DPWMA调制波生成逻辑与前馈控制环节的实现细节,同时参考文末列出的多样化研究方向,以拓宽技术视野并激发创新思维。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值