VSCode配合pipenv搞定虚拟环境的实现方法


Posted in Python onMay 17, 2020

VSCode指定Python路径快捷运行py脚本之前写过了,这样配置有一个问题:所有的python脚本都使用的同一个python来执行的.现在是虚拟环境的天下,怎样做到不同的项目使用的不同的Python环境呢?

想做到这个也简单,关键三点

一.使用不同的VSCode打开不同的项目

二.虚拟环境以同样的文件夹名放在项目根目录如.venv

三.之前的python路径设置相对路径 .venv/bin/python

预期目标两个:

一 使用Command+Shift+b运行时使用当前虚拟环境的python

二 py文件右键 在终端中打开Open in Integrated Terminal 时自动激活当前虚拟环境

VSCode配合pipenv搞定虚拟环境的实现方法

因为笔者钟爱pipenv所以就以它创建虚拟环境演示了.

创建项目并将虚拟环境放在.venv

➜ Desktop mkdir c_test_py
➜ Desktop cd c_test_py
➜ c_test_py mkdir .venv
➜ c_test_py pipenv --python 3.8.2
Creating a virtualenv for this project...
Pipfile: /Users/rainbird/Desktop/c_test_py/Pipfile
Using /Users/rainbird/.pyenv/versions/3.8.2/bin/python (3.8.2) to create virtualenv...
⠸ Creating virtual environment...Already using interpreter /Users/rainbird/.pyenv/versions/3.8.2/bin/python
Using base prefix '/Users/rainbird/.pyenv/versions/3.8.2'
New python executable in /Users/rainbird/Desktop/c_test_py/.venv/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /Users/rainbird/.pyenv/versions/3.8.2/bin/python

✔ Successfully created virtual environment!
Virtualenv location: /Users/rainbird/Desktop/c_test_py/.venv
Creating a Pipfile for this project...
➜ c_test_py pipenv shell
Launching subshell in virtual environment...
 . /Users/rainbird/Desktop/c_test_py/.venv/bin/activate
➜ c_test_py . /Users/rainbird/Desktop/c_test_py/.venv/bin/activate
(c_test_py) ➜ c_test_py python -V
Python 3.8.2
(c_test_py) ➜ c_test_py

通过上面可以看到,我们最后一个pipenv shell成功激活了当前目录下的.venv的虚拟环境

VSCode新建窗口打开新工程

VSCode配合pipenv搞定虚拟环境的实现方法

或者直接将新创建c_test_py文件件拖到新容器也可以.

配置python路径为相对路径

VSCode菜单-终端->配置任务

VSCode配合pipenv搞定虚拟环境的实现方法

将之前的绝对路径改成相对路径 .venv/bin/python

{
 // See https://go.microsoft.com/fwlink/?LinkId=733558
 // for the documentation about the tasks.json format
 "version": "2.0.0",
 "tasks": [
  {
   //command + shift + b 运行时使用
   "label": "python",
   "type": "shell",
   "command": ".venv/bin/python",
   "args": [
    "${file}"
   ],
   "group": {
    "kind": "build",
    "isDefault": true
   }
  }
 ]
}

验证

在新开的文件夹里新建index.py并输出hello world

print('hello world !')

VSCode配合pipenv搞定虚拟环境的实现方法

通过command+shift+b运行发现已经是使用的相对路径了.

VSCode配合pipenv搞定虚拟环境的实现方法

在index.py上右键选择 在终端中打开

VSCode配合pipenv搞定虚拟环境的实现方法

也自动激活了当前虚拟环境,完美!!!

到此这篇关于VSCode配合pipenv搞定虚拟环境的实现方法的文章就介绍到这了,更多相关VSCode pipenv虚拟环境内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现简单的可逆加密程序实例
Mar 05 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python如何发布自已pip项目的方法步骤
Oct 09 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
Python实现的排列组合、破解密码算法示例
Apr 12 Python
基于python的Paxos算法实现
Jul 03 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
如何在mac环境中用python处理protobuf
Dec 25 Python
Python 操作SQLite数据库的示例
Oct 16 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 #Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 #Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 #Python
python 实现PIL模块在图片画线写字
May 16 #Python
在python image 中实现安装中文字体
May 16 #Python
Python 判断时间是否在时间区间内的实例
May 16 #Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 #Python
You might like
用 PHP5 轻松解析 XML
2006/12/04 PHP
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
PHP小教程之实现链表
2014/06/09 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
js+css实现打字效果
2020/06/24 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python三大神器之fabric使用教程
2019/06/10 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
Python类型转换的魔术方法详解
2020/12/23 Python
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
令人印象深刻的自荐信
2014/05/25 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
python 调用js的四种方式
2021/04/11 Python
Nginx进程管理和重载原理详解
2021/04/22 Servers