Pycharm: ImportError: attempted relative import with no known parent package解决方案

本文分享了如何在PyCharm中处理相对导入错误,包括设置sourcesroot、使用relativepath和理解工作目录,以及在不同文件夹间引用文件的最佳实践。通过实例演示,解决ImportError并优化路径管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不成熟的解决方案总结

1. 增加sources root,这样被引用的py中的相对路径(特指在路径前一个点两个点这种情况)就能使用了;

2. 引用其他py,不想使用全路径,可以右键被引用的py 复制他的relative path;原因是想引用其他folder的py,必须从根文件夹上开始层层往下递进;

3. 用路径读文件时,要看看当前的工作目录是哪个,可以不把所有路径写全,只写到当前工作目录的下一级就可以了。

下面是排查细节:

小白的我从GitHub上下载下来的机器学习单独运行某个py会报错如下:

ImportError: attempted relative import with no known parent package

或者是下图

在一番查找资料后,我将linear_regression_pytr.py(此时我要运行它)的folder改为了sources root,方法就是鼠标选到这个folder点右键-->mark direction as -->sources root,我估计此时代码中

from ..utils.features import prepare_for_training

就能用了,不用写绝对路径;

utils这个folder同理,下面这块的代码也能跑了

from .normalize import normalize
from .generate_sinusoids import generate_sinusoids
from .generate_polynomials import generate_polynomials

但当我想使用下面这句时,还是不行,

from .linear_regression_bytr import LinearRegression

所以只能用他的relative path

from homemade.linear_regression.linear_regression_bytr import LinearRegression

此时问题又来了,用read_csv这个函数时,文件路径又不能用点了,必须上全路径,但全路径真的很长,又是一番查找资料,发现我的working directory是到唐宇迪机器学习基础的,所以我的路径必须从这个文件夹下面开始,也就有了后面的路径:

data = pd.read_csv('homemade-machine-learning-master/data/world-happiness-report-2017.csv')

感谢两位小伙伴

# Pycharm从另外的文件夹引用py文件_oncebeen的博客-优快云博客_pycharm怎么引用其他py文件Pycharm从另外的文件夹引用py文件https://blog.youkuaiyun.com/m0_46207115/article/details/124591372pycharm中将文件目录标记为sources root和sys.path.append()效果一样 - 风hua - 博客园之前遇到一个问题,先放上项目目录图 右边是main.py,它要引用的一个模块是在LPRNET目录下的一个文件,但是从右边可以看到pycharm有红色的线提示有错误。但是由于我们append函数将该目录https://www.cnblogs.com/huahuawang/p/13827397.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值