VsCode import自己写的包各种报错解决方案2022.9

本文介绍了在Vscode中处理Python模块导入的问题,包括如何通过`sys.path.append`解决父目录引用,以及解释了Vscode中当前运行状态的根目录可能因环境不同而变化。文章还纠正了关于设置更改和使用绝对路径的误解,并提供了不同情况下的导入策略。

2023-04-06更新

再补充一下!!如果你写的是一个系统的代码,就是说你主文件调用了其他文件,被调用的文件也调用了别的文件,那么只需要在主文件开头加上

import sys 
sys.path.append("..") # 这个具体的相对路径最好写成你这个系统的整体文件夹路径

 被调用的那些文件不用再写一遍,否则会导致混乱。

2022-11-14更新

发现相对引用还是只能引用兄弟文件或者子孙文件。不能引用父目录及以上的文件。

父目录的文件必须先

import sys 
sys.path.append("..") 

 然后就可以根据当前路径的父路径计算相对路径。


2022-11-4更新

之前说的【思想】依然是对的,不过有点谬误。

VsCode中的“当前根路径”是动态变化的。

比如jupyter中,

 在【终端】的当前路径是它显示的位置。

而在【jupyter】中的当前路径却不一定,比如图上是这个文件夹的路径。

**VsCode中相对路径要根据当前的真实路径进行相对计算**

而当前的真实路径不一定是当前文件的路径,要看当前文件运行环境的情况,有可能是他的父文件夹,也有可能是整个窗口的home根路径。 


报错内容,不外乎以下几种

ValueError: attempted relative import beyond top-level package
# 翻译:试图在顶级包之外进行相对导入

ImportError: attempted relat
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值