pycharm import上级目录内的py文件

首先, 无论是import同目录中,还是子目录中的py文件都是没什么问题的,非常正常。

但是在import上级目录或是隔壁目录的时候就很尴尬了。

1.正常方法

最正常的方法当然是

import sys
sys.path.append("../")
from a import c

这是最为常见的解决方法,能解决一半问题,虽然pycharm会提示这里不对,但是运行时完全没有问题的。

但是却有致命的缺陷:对于这样引入的py文件,pycharm并不会给与任何的代码提示,对于里面包含的方法,并不会进行搜索和补完。这样做不仅效率低下,而且容易出错。

2.导入根

通过将该文件夹在pycharm的设置中设置为“根文件”,可以使错误提示消失,并且能够对py文件中的方法进行补全和提示,看起来不错?一开始是的,但是马上发现其他的问题,那就是,此时,即便没有这两行代码:

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

仅保留此行:

from a import c

同样可以在pycharm的测试中运行——但是用系统的解释器不能运行。

3.很为难

如果不将目录设置为根,就可以保证程序不会变成“在pycharm中能运行,但在系统解释器中不能运行”的情况,但是没有自动补全效率会很低下;

如果将目录设置为根,那么可以自动补全提升效率,但是在头部导入的时候必须很小心谨慎,因为你即使是写错了或者没写,在pycharm中也是可以正常运行的,万一写错了,部署到生产环境中,结果报错,你都不知道哪里错了。

 

我觉得这肯定是我的姿势不对,请问有没有老师能告诉我一个能两全其美的方法?

from . 是本目录下导入, from .. 是上一级目录下导入