Python模块导入问题

原创 2018年04月17日 16:02:41
Python模块导入

项目目录结构
  
PythonProject                --父目录
        __init__.py
        main.py
        |    --pac1          --子目录:pac1
            __init__.py
            f1.py

        |    --pac2          --子目录:pac2
            __init__.py
            f2.py
注:Python新建一个包时,该目录下回自动生成一个 __init__.py 文件。

    --f1.py
# -*- coding:utf-8 -*-

def func1():
    print('Hello World!')



    --f2.py
# -*- coding:utf-8 -*

def func2():
    x = 9 + 9
    print(x)



场景:要在 f2 中导入 f1 并调用 f1 中的方法 func1()
①、f1 和 f2 在同级目录的不同的子目录中,所以不能直接调用,并且也不能直接调用父目录的模块
②、父目录调用子目录的模块、子目录之间调用模块,使用如下相同方法

1)方式一:import  PythonProject.pac1.f1    --导入模块PythonProject.pac1.f1
注:导入后,只能全名访问模块属性    --例如:PythonProject.pac1.f1.func1()
# -*- coding:utf-8 -*
import PythonProject.pac1.f1        # 导入模块 f1

def func2():
    x = 9 + 9
    print(x)

PythonProject.pac1.f1.func1()       # 调用模块 f1 中的func1()方法,只能全名访问模块属性 ---PythonProject.pac1.f1.func1()



2)方式二:from  PythonProject.pac1  import f1    --导入模块PythonProject.pac1.f1
注:导入后,只能以 f1.属性名访问模块属性
# -*- coding:utf-8 -*
from PythonProject.pac1 import f1      # 导入模块 f1

def func2():
    x = 9 + 9
    print(x)

f1.func1()      # 导入后,只能以 f1.属性名 访问模块属性



3)方式三:from  PythonProject.pac1.f1  import func1()    --导入模块PythonProject.pac1.f1
注:导入后,直接把 func1() 放入当前名称空间,可直接访问
# -*- coding:utf-8 -*
from PythonProject.pac1.f1 import func1     # 导入模块fill

def func2():
    x = 9 + 9
    print(x)

func1()     # 导入后,直接把 func1() 放入当前名称空间,可直接访问



4)方式4:from  PythonProject.pac1  import *
注: 这个语句的原意图是想将PythonProject.pac1包下的所有模块导入到当前的名称空间.然而,由于不同平台间文件名规则不同(比如大小写敏感问题), Python不能正确判定哪些模块要被导入.这个语句只会顺序运行PythonProject和pac1 文件夹下的__init__.py文件. 要解决这个问题,应该在 pac1 文件夹下面的 __init__.py 中定义一个名字all的列表,例如:
# -*- coding:utf-8 -*-
__all__ = ["f1"]                    ---如果还有其他属性,直接用逗号“,”分隔,一次添加在后面即可  


# -*- coding:utf-8 -*
from PythonProject.pac1 import *     # 导入模块fill

def func2():
    x = 9 + 9
    print(x)

f1.func1()     # 导入后,通过 f1.属性名 访问模块属性


                     



python模块导入问题

  • 2010年09月17日 08:22
  • 3KB
  • 下载

Python模块包管理工具

  • 2015年02月01日 14:49
  • 6KB
  • 下载

python 模块导入问题

因为安装jython的原因,就去探究了一下模块路径的问题,这里指代python 第一个是路径列表 sys.path 这个语句可以看路径的情况 如果想要添加路径,那么 sys.path.append('...
  • artemisrj
  • artemisrj
  • 2015-04-08 21:21:35
  • 293

Python 模块导入路径问题

在python用import或者from...import来导入相应的模块。 导入mode,import与from...import的不同之处在于,简单说: 如果你想要直接输入argv变量...
  • hfut_jf
  • hfut_jf
  • 2013-10-12 14:55:26
  • 1104

python 模块导入问题详解

1 同级目录下不同模块的调用: module21调用module11的具体方法: 使用方法: >>> from package.subpack2.module21 import classmod...
  • zhoujianli12
  • zhoujianli12
  • 2011-08-08 22:08:15
  • 253

python模块导入问题浅析

一:import搜索模块路径1):使用sys.path查看当前程序的模块搜索路径,返回一个列表2):使用sys.path.append(‘模块路径’)添加自定义模块      例如:添加桌面上的dem...
  • xiamoyanyulrq
  • xiamoyanyulrq
  • 2018-04-15 22:53:43
  • 5

python模块导入原理

今日在自学Python,借此机会,正好重新开始写博文,既可以巩固Python的知识,也可顺便提高一下文笔。 一、python模块基础   言归正传,Python的模块是python语言中代码复用的最...
  • u012422440
  • u012422440
  • 2014-12-09 19:53:51
  • 3462

含python解释器+pythonIDE+第三模块包导入(64位)

  • 2017年01月13日 10:51
  • 38.13MB
  • 下载

python导入第三方模块(1)

转载:https://www.crifan.com/python_import_modules_under_sub_folders/**重点内容** 【问题】之前导入另外一个Python模块,包括自己...
  • qq_21033779
  • qq_21033779
  • 2017-12-22 09:32:03
  • 151

python模块导入

3.3模块导入任务 利用import ... as ...,还可以动态导入不同名称的模块。 Python 2.6/2.7提供了json 模块,但Python 2.5以及更早版本没有js...
  • lucky_kai
  • lucky_kai
  • 2017-03-11 15:52:25
  • 182
收藏助手
不良信息举报
您举报文章:Python模块导入问题
举报原因:
原因补充:

(最多只允许输入30个字)