当我们想在命令行中运行pip命令或者python命令时,想在全局环境运行时不会有任何问题,但是当我们想在一个干净的虚拟环境下开发自己的项目时,这时就需要虚拟环境中的python解释器。往往在实践中可以发现,进入虚拟环境后运行python或者pip命令,却还是执行的全局解释器。就很苦恼。
案例场景:在开发web项目中,我们通常会导出当前项目所依赖的module,这时只需要一句pip命令即可搞定:
pip freeze > requirements.txt
安装或升级包后,最好更新这个文件以保证虚拟环境中的依赖包。
当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:
pip install -r requirements.txt
使用如下命令可以查看当前环境的module list
pip list
然后,实际在操作这个时候,却发现导出来的module是全局环境下的,并不是当前虚拟环境中的。这时解决方案有两个:
- 修改环境变量:将当前虚拟环境解释器所在目录添加到环境变量中,并让这个值位于全局环境变量之前,但是需要注意,这种方式会使得每次运行pip命令均使用这个解释器,故不推荐。
- 进入当前虚拟环境解释器所在目录,再运行pip命令。这种方式简单快捷,推荐大家使用。