配置 virtualenv python 虚拟环境
The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these libraries? If you install everything into your host python (e.g. python3.8) it’s easy to end up in a situation where two packages have conflicting requirements.
简答来说, virtualenv
提供的功能就是提供不同的环境给不同的项目,便于各个不同的项目的包管理.例如,项目 1 使用的 a 包的1.0 版本,项目 2 使用的是 a 包的 2.0 版本,这时候就需要 virtualenv 这样的工具帮助我们进行项目管理了.
安装&配置
在安装之前需要明确的是对于 mac 用户,系统自带的是 python2.*版本
但是 python2.*版本已经停止维护,因此需要我们自己安装 python3,推荐使用 brew 安装 python3.
同时 py2 版本千万不要去动!系统上有很多对 py2 的依赖,删除 py2 可能会造成不可挽回的后果,同时不是大神的话也不要尝试去修改 python 软连接,这样同样也会造成严重的后果.这里我们采用设置别名的方式来修改 Python的默认版本(仅在 shell 中).
设置默认 py 版本
查看py 版本:
which python
# /usr/local/bin/python
which python3
# /usr/bin/python3
首先查看当前使用的 shell :
echo $SHELL
# /bin/zsh
这里我用 zsh 替代了系统默认的 shell,所以输出为 zsh,所以我需要修改 .zshrc 文件.( 如果使用的是默认的 shell 的话,需要配置 ~/.bashrc
)
cd
vi ./.zshrc
在最后添加一行
# .zshrc
alias python=/usr/bin/python3
# 这里设置的别名就是之前 `which python3 `显示的结果.
:wq
保存以后,执行:
. ./.zshrc
验证:
python
# Python 3.7.3 (default, Oct 11 2019, 19:39:43)
# [Clang 11.0.0 (clang-1100.0.33.12)] on darwin
# Type "help", "copyright", "credits" or "license" for more information.
# >>>
接着才是正题:
安装 virtualenv
pip3 install virtualenv
在项目中使用
cd/project
virtualenv venv
# 设置新的环境 `venv`
这时会在项目根目录下添加一个 venv
文件夹. 如果使用的编辑器是 vscode 的话,编辑器会提醒我们切换到虚拟环境.
切换到虚拟环境之后,我们进入到虚拟环境:
. ./venv/bin/active
可以看到,flask 只被安装到当前项目环境中.