使用mspyls出现unresolved import 的警告

今天写代码,在使用mspyls时,我发现import 一个同级文件总是出现unresolved import,比如在同一个文件夹里面有a.py和b.py,如果在b文件里面import a他就会出现上面的警告,导致跟他相关的类或者函数,都不能补全.但是实际的程序调用还是正常进行了,结果也正常能够输出

在另外一个帖子里回你了。

我的层级是这样的 2019-07-19%2013-49-31%20%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE

在tain目录下是a和b 2019-07-19%2013-49-52%20%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE 那就是同级文件的调用必须要在同级位置添加这个.projectile文件

童鞋,你是不是没理解python module啊。这些都是配置问题

试试

import train.a

我理解的是同级调用应该是可以直接调用的啊,我试了import train.a "checker"没有警告,但是他会报错 no module named ‘train’

举一反三,利用module

from train import a

这是python基础问题,跟emacs没有关系了。 你要想清楚,你到底是想作为module还是就是简单可执行脚本。 按照目前你所说的情况,直接在train里加.projectile.

刚才在train文件夹下面加上.projectile确实实现了文件相互调用,我只是不明白,我.projectle文件放在train的同一级,为什么a b为什么就不能相互调用了

projectile 默认会认 Pipfile 的,找到这个文件之后,以这个文件所在目录作为根目录开始搜索。和把 .projectile 放在 train 同级目录一样。放在 train 下面, projectile 搜索时候会以 train 为根目录来搜索。

实际我没怎么搞明白emacs这个moduel调用到底是什么样的机制,我以前使用pycharm的时候,同级目录下的module,调用时,它会在当前目录进行查找你要找的module;如果emacs也是这个机制的话,那么我train目录下的两个文件调用,应该是不需要什么.projectile文件的。并且我在train文件下不加.project等文件,它会出现unresolved import的警告,但是结果却能正常输出;这不说明emacs也是遵循这个机制的吗?还是说出现unresolved import 警告是mspyls的问题,mspyls它的查找路径是以添加.projectile或者.git文件问根目录开始查找的,也不不知道我说的,大佬听懂了没有

可以装一个vscode验证一下