vscode python相对路径的问题

vscode python相对路径的问题

最近使用使用vscode连接wsl2写python时,经常遇到找不到包中的方法的问题,最终发现vscode在执行python代码时目录不是从当前python文件开始算起,而是从当前工作区的目录开始算起,比如说我打开的是/home/lenovo/code,在我的code目录下有一个py_learn文件夹下有geometry.py main.py 两个文件

geometry.py

python 复制代码
# geometry.py
def area_circle(radius):
    return 3.14159 * radius ** 2

class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        return self.length * self.width
    
PI = 3.14159

main.py

python 复制代码
# main.py
import geometry
# 使用函数
print(geometry.area_circle(5))  # 78.53975

# 使用类
rect = geometry.Rectangle(4, 3)
print(rect.area())  # 12

默认情况下,会说geometry模块没有area_circle方法,这是因为python默认是从/home/lenovo/code寻找的geometry而不是/home/lenovo/code/py_learn中寻找,如果想让python程序执行时,默认从当前py文件的路径下开始寻找

可以配置vscode的launch.json文件

  1. 打开调试面板(Ctrl+Shift+D)。

  2. 点击"创建 launch.json 文件"。

  3. 修改或添加以下内容:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"  // 设置为脚本所在目录
        }
    ]
}

这样每次执行py程序就会从当前的py文件的目录开始算起

相关推荐
人工智能研究所30 分钟前
使用OpenCV与Python编写自己的俄罗斯方块小游戏
开发语言·python·opencv
DDD小小小宇宙30 分钟前
python列表基础知识
开发语言·windows·python
@黄色海岸1 小时前
【sklearn 05】sklearn功能模块
人工智能·python·sklearn
还是鼠鼠1 小时前
Node.js--exports 对象详解:用法、示例与最佳实践
前端·javascript·vscode·node.js·web
追逐☞1 小时前
PyTorch使用-张量类型转换
人工智能·pytorch·python
懒大王爱吃狼1 小时前
Python + Qt Designer构建多界面GUI应用程序:Python如何调用多个界面文件
开发语言·数据库·python·qt·mysql·python基础·命令模式
北京_宏哥1 小时前
🔥《手把手教你》系列练习篇之8-python+ selenium自动化测试(详细教程)
前端·python·selenium
北京_宏哥2 小时前
🔥《手把手教你》系列练习篇之7-python+ selenium自动化测试(详细教程)
前端·python·selenium
三道杠卷胡2 小时前
【AI News | 20250316】每日AI进展
人工智能·python·语言模型·github·aigc
这里有鱼汤2 小时前
Python编程新境界:掌握函数式编程,让你的代码优雅到飞起
后端·python