使用 VirtualEnv 配置 Python 虚拟环境
在同一台机器上开发多个 Python 项目,经常会碰到某个包的版本不一致的问题。VirtualEnv 可以为每个的项目提供独立的配置,避免冲突,绝对是居家旅行必备工具。
VirtualEnv 的安装很简单,pip install VirtualEnv
一行命令即可(前提是已经安装了 pip 包管理工具)。
安装完成后,对需要使用 VirtualEnv 的项目需要手动进行‘初始化’。切换到工程目录,运行
$ virtualenv venv
$ ./venv/scripts/activate
上面使用了两个命令。首先通过 virtualvnv
命令创建一个名为 venv
的虚拟环境,这个命令的结果是在工程目录中创建了一个名为 venv
的子目录。再运行刚刚生成的目录里的 activate
脚本。这时,shell 的 prompt 会变成以 venv
开头:
VirtualEnv 成功激活之后,运行 pip 所安装的 Python 包都是只针对当前项目,并不影响全局的 Python 设置。
下次再对这个项目进行操作时,只要再次执行 scripts 目录下的 activate 脚本即可。
附:Windows PowerShell 脚本安全策略
Windows PowerShell 默认的脚本签名策略会阻止上文提到的 activate 脚本的执行。
要执行脚本,需要将 ExecutionPolicy
改为 RemoteSigned
。
$ set-ExecutionPolicy RemoteSigned
运行 get-help about_signing
可以查看 PowerShell 的脚本签名策略。
ExecutionPolicy
的默认值是 restricted
,即不允许运行任何脚本(吐槽一下,不能运行脚本的 Shell 还敢号称 PowerShell???),当然这样是出于安全的考虑。通过 set-ExecutionPolicy
可以将其改为 allsigned
或 remotesigned
。
关于脚本签名,我的理解是类似于(古老的)赛班系统的软件签名,就是说要有某个证书来保证脚本的安全性。关于如何签名,get-help
中也作了详细的介绍,可以看出伪造签名并不是一件容易的事情。如果实在要运行末经签名的脚本,可以到脚本文件的属性设置中选择“取消阻止”。