Python打包并引用
来源:互联网 发布:图片归类软件 编辑:程序博客网 时间:2024/05/17 06:19
最近在看caffe的python接口部分的内容,学习关于Python打包的方法和原理,然后通过一个例子来清晰地介绍一下怎么import一个自己打的python包:
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在__init__.py文件,该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。
给出一个在package_test目录下的test1.py、test_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 test1和from .test2 import test2,那同样可以采用另外一个方法,就是直接在test.py里面引入test1.py和test2.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
- Python打包并引用
- VS2005 vs2010 Web引用程序打包并安装数据库
- [转]VS2005 vs2010 Web引用程序打包并安装数据库
- 打包arr,并在其他项目当中引用
- 使用vs2010进行Qt和Python混合编程并打包
- python实现简单抓图并打包成exe
- Python 实现Android打包并安装后启动
- Android 将Android项目打包成aar文件并在其他项目中引用,打包成jar包
- Android Studio中打包aar并引用及打jar包
- android studio 将引用第三方jar和.so的项目打包jar并混淆
- Spring Boot 将Freemarker打包到其他jar并在项目中引用的简单方法
- android studio打包生成aar文件并在其他工程引用aar包
- Spring Boot 将第三方依赖和配置文件打包在jar外部并引用
- android studio 将引用第三方jar和.so的项目打包jar并混淆
- 打包+引用 jar
- python 打包
- python 打包
- python打包
- session实现登录注销功能
- Spring的两种代理方式:JDK动态代理和CGLIB动态代理
- 比特承诺 Bit Commitment
- Maven详解之仓库------本地仓库、远程仓库
- Android 音频系统:从 AudioTrack 到 AudioFlinger
- Python打包并引用
- 【C语言训练】谁家孩子跑最慢
- HTDP学习笔记(2)--习题2.2.1之我的答案
- 安装Git
- 设计模式之6大设计原则
- 基于Java实现的基本二叉树
- java八大基本类型
- JNI高阶知识总结
- oracle--PLSQL