Vscode python debug过程中Terminal 终端路径的设置

昨天用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
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章