专栏首页python3Python import同级目录报错

Python import同级目录报错

参考:http://blog.csdn.net/geekleee/article/details/52505233

pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->Sources Root将当前工作的文件夹加入source_path就可以了。

还有一点:

models加一个点,表示同级目录。from .models import classN

import功能实际应用还有很多坑: 比如,不通过模块名字,直接引入模块内的类  我们创建一个包叫ccc,然后下面的init里面什么也没写,都是空的  然后bbb.by里面的内容是:

def a():
    print (1)
  • 1
  • 2
  • 1
  • 2

如果你要访问这个函数a  首先第一点,一个写法:  from ccc.bbb import a ,注意,他只能通过 包名.模块名来import具体函数  如果你直接用from ccc import a ,是会报警的,报警如下:

>>> from ccc import a
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ImportError: cannot import name 'a'
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

其实,关键是,如果你要通过from ccc import a,重要的是init的内容  如果我们把init内容写成下图3  from .bbb import a,这里面的 .bbb是什么意思呢?就是在同级目录下面的bbb模块,如果前面是2个点,那就是上级目录的bbb

现在,要讲一个重要概念!!!  当你导入一个包的时候,实际上是导入了这个包的init.py的文件,所以,如果你在init里面写入了其他的import功能,就等于是在初始化的时候帮忙导入了其他东西。  就比如下面的例子,他在导包的时候,就顺便导入了a这个函数!! 

从这个话题引申到其他话题,我在做flask第一节课的时候一直无法理解,为什么from flask import Flask可以成功?  第一个flask是包,第二个Flask是类,但是,实际上这个Flask类是在flask包的目录下app.py里面的。  所以后来我去看了flask包的init.py,原来在里面,他已经帮你导入了Flask类,所以你在导入flask包的时候,就已经可以直接导Flask类了  看到里面的 from .app import Flask, Request, Response  .app就表示了在flask包下,和init同级的app.py 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flask入门之完整项目搭建

      在application/__init__.py项目初始化文件中加载redis或者mysql的初始化代码

    py3study
  • Python从菜鸟到高手(4):导入Py

      如果在Python程序中大量使用模块中的某些函数,那么每次在调用函数时都要加上“模块名”显得有些麻烦,所以在这种情况下,可以使用from…import…语句...

    py3study
  • Python 之 sqlalchemy更

    py3study
  • Django2.1集成xadmin管理后台所遇到的错误解决办法

    django默认是有一个admin的后台管理模块,但是丑,功能也不齐全,但是大神给我们已经集成好了xadmin后台,我们拿来用即可,但是呢,django已经升级...

    菲宇
  • 基于Python的人工智能美颜系统

    基于Python的人工智能美颜系统使用PyQt5模块搭建可视化界面,使用Dlib模型(shape_predictor_68_face_landmarks.da...

    不脱发的程序猿
  • 广告小程序后端开发(5.安装配置django-rest-framework,编写后台登录逻辑)

    玩蛇的胖纸
  • Python从菜鸟到高手(4):导入Py

      如果在Python程序中大量使用模块中的某些函数,那么每次在调用函数时都要加上“模块名”显得有些麻烦,所以在这种情况下,可以使用from…import…语句...

    py3study
  • [pytorch] 图像分类框架【Efficientnet0/1/2/3/4/5/6/7】

    以kaggle的SIIM-ISIC Melanoma Classification比赛:https://www.kaggle.com/c/siim-isic-m...

    MachineLP
  • [pytorch] 图像目标检测框架【Efficientnet0/1/2/3/4/5/6/7】

    以kaggle的SIIM-ISIC Melanoma Classification比赛:https://www.kaggle.com/c/global-whea...

    MachineLP
  • 基于HMM的语音识别搭建(未用HTK)

    1.最近研究语音识别,就顺便研究了一下隐马尔科夫链。 2.其中核心代码为: 3.训练样本数据集,请联系作者。

    AI之禅

扫码关注云+社区

领取腾讯云代金券