写在前面
win10 powershell 在使用习惯上比较贴近ubuntu、centos 等 linux 系统。但是 virtualenv 针对 powershell 并不能很好的使用(workon <虚拟环境名>
不能进入指定的虚拟环境中); cmd 虽然可以执行以上命令, 但是 cmd 并不是很好用。
1. 配置cmd
安装 virtualenv
使用 pip 命令安装 virtualenv (此处不再赘述安装python的过程)
>>> pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple/
加上 “-i https://pypi.tuna.tsinghua.edu.cn/simple/” 是为了从国内清华源下载, 速度比较快~
配置环境变量
桌面右键"此电脑 --> 高级系统设置 --> 环境变量", 在"系统变量"中新建如下图所示条目:
此时可以使用 virtualenv <虚拟环境名> 在 C:\Users\<your pc name>
路径下创建一个以 虚拟环境名 命名的虚拟环境包, 要进入此虚拟环境需要进入该包中的 Scripts 目录下执行 activate 才可以进入虚拟环境(实在是麻烦, 万一虚拟环境比较多, 每次这样太麻烦了!)
所以就引出了 virtualenvwrapper 该工具是 virtualenv 的扩展管理包,用于更方便管理虚拟环境, 常用命令:
创建基本环境: mkvirtualenv [环境名]
删除环境: rmvirtualenv [环境名]
激活环境: workon [环境名]
退出环境: deactivate
列出所有环境: workon 或者 lsvirtualenv [-b]
安装 virtualenvwrapper
>>> pip install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装完后, 就可以在 cmd 中使用上方 virtualenvwrapper 的常用命令来操作虚拟环境了。
但此时 powershell 仍然不能正常使用, 就算进入C:\Users\<your pc name>\Scripts
目录下也无法通过activate
进入虚拟环境
2. 配置 powershell
初步实现
首先实现进入C:\Users\<your pc name>\Scripts
目录下, 通过activate
进入虚拟环境的办法。
以管理员方式运行 powershell 输入 Set-ExecutionPolicy RemoteSigned
执行策略更改, 在弹出的[Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”):
提示后输入Y
即可。
此时可以在C:\Users\<your pc name>\Scripts
目录下, 通过 activate
进入虚拟环境, 以及使用deactivate
退出虚拟环境。
此时不足的地方就是不能使用 powershell 在任意位置使用workon
或者lsvirtualenv
来显示现有的虚拟环境, 以及通过 workon <虚拟环境名>
进入指定的虚拟环境。
趋于完美
为什么叫趋于完美呢, 因为完成以下步骤后, 还是不能使用workon
来显示现有的虚拟环境, 只能使用lsvirtualenv
来显示, 就算是练练英语拼写吧。
解决方案就在该同性交友网站: VirtualEnvWrapper for Windows Powershell
步骤:
- 拉取该项目到本地(主要是直接下载所需的
Install.ps1
文件太慢了) -
Just use the Install.ps1 script:
./Install.ps1 - 使用方法
lsvirtualenv (alias: Get-VirtualEnvs) : List all Virtual environments
mkvirtualenv (alias: New-VirtualEnv) : Ceate a new virtual environment
rmvirtualenv (alias: Remove-VirtualEnv) : Remove an existing virtual environment
workon: Activate an existing virtual environment
Get-VirtualEnvsVersion: to display the current version.