Python打包并引用

来源:互联网 发布:图片归类软件 编辑:程序博客网 时间:2024/05/17 06:19
  最近在看caffepython接口部分的内容,学习关于Python打包的方法和原理,然后通过一个例子来清晰地介绍一下怎么import一个自己打的python:

  包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在__init__.py文件,该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。

  给出一个在package_test目录下的test1.pytest_2.py__init__.py文件,test.py为测试调用包的代码,目录结构如下:

test1.py的源代码如下:

#!/usr/bin/python# -*- coding: UTF-8 -*-def test1():    print "I am in test1"

test2.py的源代码如下:

#!/usr/bin/python# -*- coding; UTF-8 -*-def test2():    print "I am in test2"

__init__.py的源代码如下:

# -*- coding: UTF-8 -*-from .test1 import test1#从当前文件引入test1模块的test1函数from .test2 import test2if __name__=='__main__':    print 'as the main program'else:    print 'package_test initialization'

定义了包package以后,就可以在test.py测试程序里面进行相应的调用了。

test.py源代码如下:

#!usr/bin/python# -*- coding: UTF-8 -*-python_root='/home/zf/'import syssys.path.insert(0,python_root + 'example')#引入包含test1.py、test_2.py、__init__.py,package_test的example包import package_test#引入定义的package_test包package_test.test1()package_test.test2()#用package_test名调用test1.py和test2.py里面定义的函数

同样,如果没有在__init__.py里面包含from .test1 import test1from .test2 import test2,那同样可以采用另外一个方法,就是直接在test.py里面引入test1.pytest2.py里面定义的函数。

可以修改test.py如下:

#!usr/bin/python  # -*- coding: UTF-8 -*-  #直接引入定义的package_test里面文件定义的函数  from package_test.test1 import test1  from package_test.test2 import test2  test1()test2()

输出的结果如下所示:

$python test.py

按照以上的方法,一个package_test的包就打好了。

0 0
原创粉丝点击