Python如何调用同级目录
这篇文章将为大家详细讲解有关Python如何调用同级目录,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
同级目录(兄弟目录)调用
看书看得好好的,一写代码就出错!!!
这个问题是大家初学Python的时候会遇到的一个很常见的问题,然后我们去搜网上的教程,自己试一试还是都是BUG,常见的就是这两个命令:
ModuleNotFoundError: No module named 'XXXXXXX'
ImportError: attempted relative import with no known parent package
教程一般都是很详细的给你分析,然后给你井不同文件的调用,其实整那么多没事的干嘛是不是,我们要的只是解决办法。
详细解释
注意
我只说兄弟的文件夹下面的调用,父子啥的__init__.py 搜一搜就可以了
不要用Vscode ,Vscode的环境变量你是整不明白的
我没太多的时间花费在博客上,所以遇到啥才会去扩充啥,大家也可以在下面留言遇到的问题和解决的办法
可能我说的也会有错误,但我主要的是解决我自己遇到的问题
开始上代码
目录结构
a1.py
def a1_print(): print("a1_print OK")
b1.py
from ..a.a1 import a1_printa1_print()
运行b1.py,报错
ImportError: attempted relative import with no known parent package
原因
文件夹被python解释器视作package需要满足两个条件:
文件夹中必须有__init__.py文件,该文件可以为空,但必须存在。不能作为顶层模块来执行该文件夹中的py文件,即使用…的文件夹外边还需要有包含__init__.py的文件夹 (即不能作为主函数的入口)
主就是 不能作为主函数的入口,兄弟引用不能作为入口,意思是你不能直接运行b1.py,你可以在c1.py 这样弄,b1.py 不可以 不可以 不可以
我非要咋解决
修改b1.py
import sys# 加了这了sys.path.append("..") ## 这个from a.a1 import a1_print #改了这个a1_print()
输出
BUG
Pycharm
我觉得还是不管它吧,能运行就不错了,没有啥影响。
不要用Vscode 不要用Vscode 不要用Vscode
import同级目录报错
pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->Sources Root将当前工作的文件夹加入source_path就可以了。
关于“Python如何调用同级目录”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341