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

不成熟的解决方案总结

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

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

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

下面是排查细节:

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

ImportError: attempted relative import with no known parent package

或者是下图Pycharm: ImportError: attempted relative import with no known parent package解决方案_第1张图片

在一番查找资料后,我将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

Pycharm: ImportError: attempted relative import with no known parent package解决方案_第2张图片

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

from .linear_regression_bytr import LinearRegression

所以只能用他的relative path

from homemade.linear_regression.linear_regression_bytr import LinearRegression

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

Pycharm: ImportError: attempted relative import with no known parent package解决方案_第3张图片

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

感谢两位小伙伴

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

你可能感兴趣的:(Python数据处理,pycharm,python,ide)