不成熟的解决方案总结
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