Python 同级目录(兄弟目录)调用方式
作者:Dawn死小烦 发布时间:2021-12-07 15:52:12
同级目录(兄弟目录)调用
看书看得好好的,一写代码就出错!!!
这个问题是大家初学Python的时候会遇到的一个很常见的问题,然后我们去搜网上的教程,自己试一试还是都是BUG,常见的就是这两个命令:
ModuleNotFoundError: No module named 'XXXXXXX'
ImportError: attempted relative import with no known parent package
教程一般都是很详细的给你分析,然后给你井不同文件的调用,其实整那么多没事的干嘛是不是,我们要的只是解决办法。
详细解释
注意
1、我只说兄弟的文件夹下面的调用,父子啥的__init__.py 搜一搜就可以了
2、不要用Vscode ,Vscode的环境变量你是整不明白的
3、我没太多的时间花费在博客上,所以遇到啥才会去扩充啥,大家也可以在下面留言遇到的问题和解决的办法
4、可能我说的也会有错误,但我主要的是解决我自己遇到的问题
开始上代码
目录结构
a1.py
def a1_print():
print("a1_print OK")
b1.py
from ..a.a1 import a1_print
a1_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就可以了。
来源:https://blog.csdn.net/ym404232992/article/details/115429984
猜你喜欢
- 对设计“以人为本”和“绿色设计”两个观点的反思——兼与设计界同仁商榷Reflection of Two Views: “People-ori
- 注:本文档做了两个MYSQL实例,多个实例方法以此类推LINUX操作系统:centOS6.3 64bit(安装了系统默认开发包)数据库一:M
- 本文作者系程序猿Daniel F Pupius,这是一篇他发表在Medium上的博文,讲述自己怎么在实际写代码的过程中,发现在效率和质量间做
- 首先我们解压$ unzip p8202632_10205_LINUX.zip解压后我们会发现多出了个文件夹,他是:Disk1,进入Disk1
- 前言在前程无忧上投递简历发现有竞争力分析,免费能看到匹配度评价和综合竞争力分数,可以做投递参考计算方式综合竞争力得分应该越高越好,匹配度评语
- 背景在本地开发vue项目的时候,当你习惯了proxyTable解决本地跨域的问题,切换到nuxt的时候,你会发现,添加了proxyTable
- 在现实的图像操作软件中,经常碰到的不是给出放大多少倍,而是由用户在软件的界面上选择多大的区域,或者选择几个点,那么这样情况下,怎么样来计算出
- 记录使用pytorch构建网络模型过程遇到的点1. 网络模型构建中的问题1.1 输入变量是Tensor张量各个模块和网络模型的输入,一定要是
- 前言之前实践了下face++在线人脸识别版本,这回做一下离线版本。github 上面有关于face_recognition的相关资料,本人只
- 斐波那契数列(Fibonacci)最早由印度数学家Gopala提出,而第一个真正研究斐波那契数列的是意大利数学家 Leonardo Fibo
- 本文为大家分享了Python实现批量压缩图片的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*- "
- TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它
- 本文实例讲述了Python删除windows垃圾文件的方法。分享给大家供大家参考。具体如下:#coding:utf-8import os#f
- 1、pd.cut函数有7个参数,主要用于对数据从最大值到最小值进行等距划分 pandas.cut(x, bins,&nb
- 在自己的网站主页上增加社会化分享按钮,是有效提高自己网站流量的一种方法。今天我在无争围棋网上增加了社会化按钮,根据我个人的习惯,我选择了豆瓣
- 前言大家都知道,Python自带的datetime库提供了将datetime转为ISO 8610格式的函数,但是对于时间间隔(inteval
- python高级特性1、集合的推导式•列表推导式,使用一句表达式构造一个新列表,可包含过滤、转换等操作。语法:[exp for item i
- 切片:切片指从现有列表中,获取一个子列表返回一个新列表,不影响原列表。下标以 0 开始:list = ['红','绿
- 最初的声明方式在没有@property修饰的情况下,需要分别声明get、set、delete函数,然后初始化property类,将这些方法加
- 前言本篇和大家分享的是使用python简化对jar包操作命令,封装成简短关键字或词,达到操作简便的目的。最近在回顾和构思shell脚本工具,