在vscode中通过修改launch.json文件为项目设置当前工作目录cwd——在launch.json文件中修改cwd变量
关于当前工作目录是什么以及其与模块搜索路径的区别可以参见下文:
Python语言中当前工作目录(Current Working Directory, cwd)与模块搜索第一路径都是指什么???
---------------------------------------------------------------
给出vscode中python项目的默认launch.json文件内容:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
}
]
}
可以看到默认的launch.json并没有设置cwd,但是其实在缺省设置下其等价于下面的设置:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"cwd": "${fileDirname}"
}
]
}
在python中当前工作目录为python代码启动时键入命令的所在的目录,而在python中使用相对路径对文件进行读存操作都是以当前工作目录为起始路径的。
默认情况下,在vscode的项目开发过程中当前工作目录为启动文件所在目录,也就是"cwd": "${fileDirname}" ,但是有时候(如子模块测试时)我们的启动文件并不在项目的顶层目录,此时为了确保当前工作目录依旧为项目的顶层目录我们可以在代码中使用os.chdir函数来设定当前工作目录,但是该种方式会破坏代码结构,因此我们使用launch.json文件中设置cwd会更为方便。
给出设置cwd为项目顶层目录的launch.json文件内容:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"cwd": "${workspaceFolder}"
}
]
}
如此设置后不论启动项目中的哪个文件其当前工作目录均为项目的顶层目录,当然该种设置主要还是为了测试子模块时使用的。
============================================
在vscode中通过修改launch.json文件为项目设置当前工作目录cwd——在launch.json文件中修改cwd变量的更多相关文章
- 如何修改通过Anaconda安装的jupyter notebook的工作目录
通过Anaconda安装jupyter notebook,对新手来说是一个非常明智的选择,可以避免很多不必要的麻烦! jupyter notbook默认情况下的工作目录是c:\user\...,接下来 ...
- 【Spring Boot】Spring Boot项目设置多个配置文件,并在生产环境中的Tomcat设置对应的配置文件
1.修改Spring Boot项目配置文件 除了主配置文件,另外创建2个配置文件,注意命名要用application-*.properties 主配置文件中写入,使用dev作为开发配置 spring. ...
- SAP 采购订单行项目中科目分配被隐藏,发现行项目设置中显示字段长度为0
1.sm30 维护 视图 TCVIEW 修改对应字段的显示长度
- 在python中如何设置当前工作目录
import osos.chdir('要设置的当前目录') >>> import os >>> os.getcwd() 'D:\\Python27' >> ...
- [19/03/29-星期五] IO技术_File(文件)类(可操作文件,不能操作其里边内容,位于Java.io 包中)&递归遍历
一.概念 java.io.File类:代表文件和目录. 在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到本类. 以pathname为路径创建File对象,如果pathname是相对路 ...
- 批量修改vss工作目录
vss作为源代码版本控制工具,可以针对不同的文件夹设置不同的本地工作目录,这样可以方便我们不同的个性化需求.但是往往实际情况是,我们设置了不同的工作目录,后来却发现导致引用混乱,每个人每次获取项目文件 ...
- Jupyter Notebook修改默认的工作目录
Jupyter Notebook修改默认的工作目录 方法1:通过配置文件修改 只适合从命令行启动notebook生成配置文件,如果你已经在windows环境变量中设置好了jupyter noteboo ...
- 用python处理excel文件有多轻松?工作从未如此简单
最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...
- .NET中的工作目录一览!
定义: 当前工作目录——进行某项操作的目的目录,会随着OpenFileDialog.SaveFileDialog等对象所确定的目录而改变. 当前执行目录——该进程从中启动的目录,即文件自身 ...
- QT中QProcess调用命令行的痛苦经历(调用Winrar,设置工作目录,获得输出,注意引号与括号,等等)
QT中QProcess调用命令行的痛苦经历 阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在Q ...
随机推荐
- maven常用命令大全(附详细解释)
1.常用打包命令 mvn clean package -Dmaven.test.skip=true -- 跳过单测打包mvn clean install -Dmaven.test.skip=true ...
- Unity 罗技G29接入
Unity 罗技G29接入 unity g29unity logictech g29g29 Unity 罗技G29接入 一. 使用Unity Standard Assets中的CrossPlatfor ...
- IT运维全面数字化|芯片设计行业领跑打造运维流程闭环
在当今数字化转型的浪潮中,科技行业正经历着前所未有的变革.随着5G.人工智能.物联网等新兴技术的快速发展,企业对于高效.智能的运营模式的需求日益迫切. 芯片设计公司作为科技产业链中的关键一环,不仅要在 ...
- 认真学习css3--01-全是日志没有技术内容
由于某些原因,还是要写写前端代码. 虽然这不是我的主要责任,但也有表率的必要性. css3这个东西没有什么大难度,难点主要集中在: 1)样式比较多 2)精准定位 3)性能优化 其中第2个是日常经常面对 ...
- 英特尔 Gaudi 加速辅助生成
随着模型规模的增长,生成式人工智能的实现需要大量的推理资源.这不仅增加了每次生成的成本,而且还增加了用于满足此类请求的功耗.因此,文本生成的推理优化对于降低延迟.基础设施成本以及功耗都至关重要,其可以 ...
- MyBase 7.1 可用的 Markdown 配置表
背景 找到了一款Markdown 笔记本软件MyBase,7.1版本支持markdown,所以我非常喜欢,修改了自己博客的css到软件里面,瞬间变得好看了. 效果图 设置方法 "工具 - 编 ...
- 面试官:JVM调优,主要针对是哪一个区域?JVM内存结构是怎样的?
作为一个Java程序员,在日常的开发中,不必像C/C++程序员那样,为每一个内存的分配而操心,JVM会替我们进行自动的内存分配和回收,方便我们开发.但是一旦发生内存泄漏或者内存溢出,如果对Java内存 ...
- 【ClickHouse】4:clickhouse基本操作二 建库建表导数据
背景介绍: 有三台CentOS7服务器安装了ClickHouse HostName IP 安装程序 程序端口 centf8118.sharding1.db 192.168.81.18 clickhou ...
- 树莓派开机自启动python程序
step1 添加程序到rc.local 添加到rc.local 里的py脚本文件将会在树莓派开机是自动运行,这种方式适合没有显示器,具体操作如下: sudo nano /etc/rc.local st ...
- 7.条件渲染if
v-if v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 truthy 值的时候被渲染. <h1 v-if="awesome">Vue is a ...