vlambda博客
学习文章列表

配置 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 版本:

 
   
   
 
  1. which python


  2. # /usr/local/bin/python



  3. which python3


  4. # /usr/bin/python3

首先查看当前使用的 shell :

 
   
   
 
  1. echo $SHELL


  2. # /bin/zsh

这里我用 zsh 替代了系统默认的 shell,所以输出为 zsh,所以我需要修改 .zshrc 文件.( 如果使用的是默认的 shell 的话,需要配置 ~/.bashrc)

 
   
   
 
  1. cd


  2. vi ./.zshrc

在最后添加一行

 
   
   
 
  1. # .zshrc


  2. alias python=/usr/bin/python3


  3. # 这里设置的别名就是之前 `which python3 `显示的结果.

:wq保存以后,执行:

 
   
   
 
  1. . ./.zshrc

验证:

 
   
   
 
  1. python

  2. # Python 3.7.3 (default, Oct 11 2019, 19:39:43)

  3. # [Clang 11.0.0 (clang-1100.0.33.12)] on darwin

  4. # Type "help", "copyright", "credits" or "license" for more information.

  5. # >>>

接着才是正题:

安装 virtualenv

 
   
   
 
  1. pip3 install virtualenv

在项目中使用

 
   
   
 
  1. cd/project


  2. virtualenv venv

  3. # 设置新的环境 `venv`

这时会在项目根目录下添加一个 venv 文件夹. 如果使用的编辑器是 vscode 的话,编辑器会提醒我们切换到虚拟环境.

切换到虚拟环境之后,我们进入到虚拟环境:

 
   
   
 
  1. . ./venv/bin/active

可以看到,flask 只被安装到当前项目环境中.