python导包的几种方法(自定义包的生成以及导入详解)


Posted in Python onJuly 15, 2019

python是一门灵活的语言,也可以说python是一门胶水语言,顾名思义,就是其可以导入各类的包,python的包可以说是所有语言中最多的。当然导入包大部分是为了更快捷,更方便,效率更高。对于刚入门的python爱好者来说最初接触的应该是import直接导入包的方式,例如 import time,就是导入了python的time包,这个包中的方法可以处理大部分我们项目中遇到的关于时间的问题。

下面我会详细介绍几种导入包的方式(在开发过程中绝对够用)以及怎样把其他文件夹中的python模块生成我们可以应用的包。

1.import 常规导入,直接导入整个包的所有的功能函数。

例如:import time, 用import直接导入 python的time模块。

python导包的几种方法(自定义包的生成以及导入详解)

2.import多个导入,导入多个包的所有功能函数。

python导包的几种方法(自定义包的生成以及导入详解)

3.from … import …导入整个包的部分功能函数。

第一个导入的是:导入random模块(包)的randint函数。
第二个导入的是:导入time模块(包)的time以及localtime函数,中间用,隔开。

python导包的几种方法(自定义包的生成以及导入详解)

4.当然也可以通过from … import * 这个也是直接导入包的所有功能。相当于import …

python导包的几种方法(自定义包的生成以及导入详解)

5.重要的,在实际的应用中用得也是比较多的,我们自定义我们自己写的功能包。

下面说的详细一点。

首先在任意路径创建一个文件夹,来放我们自定义的包的文件。

我的是创建在/home/xyh/test_package,下边是我的目录结构。要在另一个不相关的文件夹下的python应用中引用到我们自定义的包。就是在/home/xyh/test_package2/use_lucky_package.py中导入lucky_package.py这个包,测试直接import lucky_package.py或者直接from test_package import lucky_package.py是不行的。

python导包的几种方法(自定义包的生成以及导入详解) 

直接导入,出现程序运行错误提示信息:

python导包的几种方法(自定义包的生成以及导入详解)

要想成功导入需要做的两步:

第一:在test_package文件夹中创建_init_.py文件,里边什么都不需要编辑。

第二:在代码中把test_package的文件的路径加入到python解释器可以搜索到的路径列表中,这里就用到了python的包sys模块。

下边是运行过一次的目录结构:pyc文件是py文件编译后生成的字节码文件,不需要自己创建,在你第一次成功导入包并运行成功之后会自动生成。

python导包的几种方法(自定义包的生成以及导入详解)

下面附上lucky_package.py(包程序)以及use_lucky_package.py(引用包程序)的简单源码:

lucky_package.py

#_*_coding:utf-8_*_
# 导入random模块,我们要制作的包要用
import random

# 定义自定义包模块的简单功能
def test():
 print(random.randint(1,10))
 return('hello world')

use_lucky_package.py

#_*_coding:utf-8_*_
import sys

# 动态添加test_package文件夹的路径,为了能让此文件夹下的
# 自定义包成功的导入
# 要根据你自己的实际包的模块来决定路径。
sys.path.append('../')

# 打印所有python解释器可以搜索到的所有路径
print(sys.path)

# 导入自定义包
from test_package.lucky_package import *

# 输出lucky_package中test函数的结果:
result = test()
print(result)

运行以上代码结果:

python导包的几种方法(自定义包的生成以及导入详解)

其实对于不经常使用python的使用者来说,导入模块可能是个很头疼的事情,他们并不知道python的导入包的机制其实是非常灵活的,当你大概知道了python解释器是怎样去查找并引用这些包的时候,那么你写的所有程序功能都可以作为包来供你调用,只要你开心。希望通过本篇文章能够帮助解决在python使用中因为导包而带来的困扰。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编程中flask的简介与简单使用
Dec 28 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
Python with标签使用方法解析
Jan 17 Python
Python3监控疫情的完整代码
Feb 20 Python
Python如何使用turtle库绘制图形
Feb 26 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
python中HTMLParser模块知识点总结
Jan 25 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 Python
在python中实现导入一个需要传参的模块
May 12 Python
使用tensorflow 实现反向传播求导
May 26 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 Python
Python将文字转成语音并读出来的实例详解
Jul 15 #Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 #Python
Python符号计算之实现函数极限的方法
Jul 15 #Python
在python 中split()使用多符号分割的例子
Jul 15 #Python
Python-Seaborn热图绘制的实现方法
Jul 15 #Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 #Python
python 用所有标点符号分隔句子的示例
Jul 15 #Python
You might like
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
Position属性之relative用法
2015/12/14 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python发送伪造的arp请求
2014/01/09 Python
Python 字符串操作方法大全
2014/03/11 Python
python操作CouchDB的方法
2014/10/08 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
python为什么要安装到c盘
2020/07/20 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
离婚协议书范本样本
2014/08/19 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
专家推荐信怎么写
2015/03/25 职场文书
老干部座谈会主持词
2015/07/03 职场文书
文明礼貌主题班会
2015/08/14 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL