昨天用Vscode 调试python程序 ,debug过程中Termianl路径总是自动跳转到一个莫名其妙的路径,如图:
因为程序涉及判断路径下的文件是否存在,所以路径不对就很难受,查了很多终于找到原因。
原来这个涉及python的虚拟环境。其实一句话就可以解决
py -3 -m venv file_path
file_path 就是想使用的路径,在我的情况下就是
py -3 -m venv D:/Experiments/day1
现在再用Vscode调试python 就是在D:/Experiments/day1目录下执行, python的虚拟环境安装与使用如下。
首先
安装: pip install virtualenv
如果安装不成功也可以下载virtualenv源码package,通过执行setup.py来安装virtualenv。同时因为python2和python3的不同,因此也有了两种pip和pip3两种python包安装工具,而两种工具安装的virtualenv也是不相同的,python2安装的virtualenv虚拟化出来的python运行环境是python2的,python3安装的virtualenv默认虚拟环境则是python3的。
使用方法
创建环境
virtualenv [环境名]
这会在当前目录下创建一个独立的Python运行环境,可使用 virtualenv --help 来查看如何使用。
使用环境
新建的Python环境被放到当前目录下的[环境名] 目录。有了[环境名] 这个Python环境,可以用source执行:
source [环境名] /bin/activate
来激活环境,激活后在命令行的前面会出现新环境名称,表示当前环境是一个名为[环境名] 的Python环境,接下来可使用pip命令安装新环境需要的各种包。(pip命令在创建新环境时自带)
退出虚拟环境
deactivate
此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。
完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source [环境名] /bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
如果要删除虚拟环境,只需退出虚拟环境后,删除对应的虚拟环境目录即可。不影响其他环境。
virtualenvwrapper
virtualenvwrapper是基于virtualenv之上的工具扩展管理包,它将所有的虚拟环境统一起来,用于更方便管理虚拟环境,它可以做:
将所有虚拟环境整合在一个目录下
管理(新增,删除,复制)虚拟环境
切换虚拟环境
安装
pip install virtualenvwrapper-win
默认创建的虚拟环境位于C:\Users\username\envs,可以通过环境变量WORKON_HOME来定制。
通过计算机-->属性-->高级系统设置-->环境变量-->在系统变量中新建“变量名”:WORKON_HOME,变量值:“你自定义的路径”。
使用方法
所有的命令可使用:virtualenvwrapper --help 进行查看,这里列出几个常用的:
创建基本环境:
mkvirtualenv [环境名]
创建成功之后就会在刚才的WORKON_HOME所设置的目录下创建指定的虚拟环境并且自动进入,退出的话也是使用deactivate。再次进入的话,就不用向virtualenv那样去寻找路径,直接可以使用命令就可以进入虚拟环境:
workon [环境名]
常用的命令还有:
删除环境:rmvirtualenv [环境名]
列出所有环境:workon 或者 lsvirtualenv -b