美文网首页
Python自定义包引入

Python自定义包引入

作者: 御风而行carrie | 来源:发表于2018-01-01 16:30 被阅读0次

测试目录如下:
.
├── foldA
│ ├── init.py
│ └── moduleA.py
├── foldB
│ ├── init.py
│ └── moduleB.py
├── moduletree.py
├── moduletree.pyc
├── my_test.py
├── my_test.py~
└── parentmodule.py

同目录下引用 -- my_test.py 引用 moduletree.py

  • moduletree.py 内容
#coding=utf-8

def moduletree_test():
    print '同一目录下引用测试'

  • mytest.py 内容
#coding=utf-8
import moduletree


def main():
    print '引用测试:'
    moduletree.moduletree_test()


if __name__ == '__main__':
    main()

  • 运行mytest.py
Output:
引用测试:
同一目录下引用测试

引用子目录下文件 -- my_test.py 引用 /foldA/moduleA.py

  • /foldA/moduleA.py
#coding=utf-8

def moduleA_test():
    print '引用了/foldA/下的moduleA的内容'
  • my_test.py (第一种引用方式)
#coding=utf-8
import foldA.moduleA


def main():
    print '引用测试:'
    foldA.moduleA.moduleA_test()


if __name__ == '__main__':
    main()
  • my_test.py (第二种引用方式)
#coding=utf-8
from foldA import moduleA

def main():
    print '引用测试:'
    moduleA.moduleA_test()


if __name__ == '__main__':
    main()
  • 两次运行my_test.py
Output:
引用测试:
引用了/foldA/下的moduleA的内容

同级子目录引用 -- /foldB/moduleB.py 引用 /foldA/moduleA.py

  • /foldA/moduleA.py内容
#coding=utf-8

def moduleA_test():
    print '引用了/foldA/下的moduleA的内容'
  • /foldB/moduleB.py
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
import foldA.moduleA

def moduleB_test():
    print '/foldB/moduleB.py引用了:'
    foldA.moduleA.moduleA_test()


if __name__ == '__main__':
    moduleB_test()
  • /foldB/moduleB.py 第二种写法
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
from foldA import moduleA

def moduleB_test():
    print '/foldB/moduleB.py引用了:'
    moduleA.moduleA_test()

if __name__ == '__main__':
    moduleB_test()
  • 两次运行/foldB/moduleB.py
Output:
/foldB/moduleB.py引用了:
引用了/foldA/下的moduleA的内容

子目录引用父目录 -- /foldB/moduleB.py引用/parentmodule.py

  • parentmodule.py内容
#coding=utf-8

def parentmodule_test():
    print '引用了/parentmodule.py的内容'
  • /foldB/moduleB.py
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
import parentmodule

def moduleB_test():
    print '/foldB/moduleB.py引用了:'
    parentmodule.parentmodule_test()

if __name__ == '__main__':
    moduleB_test()

  • /foldB/moduleB.py 第二种写法

#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
from parentmodule import parentmodule_test

def moduleB_test():
    print '/foldB/moduleB.py引用了:'
    parentmodule_test()

if __name__ == '__main__':
    moduleB_test()

  • 两次运行/foldB/moduleB.py
Output:
/foldB/moduleB.py引用了:
引用了/parentmodule.py的内容

in a nutshell

  • 非同级目录时,注意通过 (import sys)sys.path.append("调整当前目录的路径") 修改当前目录

  • 注意 (import sys)sys.path.append("调整当前目录的路径") 修改的当前目录只对引入包产生影响,不会对文件读写路径产生影响

  • 用from方法时,要么是from %% import *,或from %% import &&(具体函数或类)

2018.01.01(一个值得纪念的日子呀,新年快乐,要更好!!!)

相关文章

  • Python自定义包引入

    测试目录如下:.├── foldA│ ├── init.py│ └── moduleA.py├── fol...

  • Python爬虫学习笔记

    1.Python连接互联网 引入urllib包

  • MongoDB与python交互

    集成和安装 安装python包 : sudo pip install pymongo 引入包pymongo : f...

  • 2018-07-23

    关于外部引入自定义jar包的操作步骤: 由于项目需要,现在需要外部引入自定义的一个项目,并且这个自定义项目也调用了...

  • SpringBoot Redis 整合

    引入 jar 包 配置属性 去除自动化配置 自定义配置 redis

  • mongodb(四):与 Python 交互

    与 Python 交互 安装pip install pymongo 引入包from pymongo import ...

  • 2018-08-16mogoDB与Python交互

    与python交互 点击查看官方文档 安装python包 引入包pymongo 连接,创建客户端 获得数据库tes...

  • python 3安装配置

    一、下载python 二、安装python 1、双击python安装包开始安装 2、去掉勾选,选择自定义安装 3、...

  • Python包及其引入方法

    一、Python包 模块所在目录看做是包,目录名即为包名。 二、Python包创建 创建过程举例(模块中不包含类)...

  • 2018-05-22

    如何将一个自定义jar包发布到maven本地仓库 有时候,我们使用maven构建项目需要在项目中引入自定义的一些包...

网友评论

      本文标题:Python自定义包引入

      本文链接:https://www.haomeiwen.com/subject/mrmtnxtx.html