python 制作自定义包并安装到系统目录的方法


Posted in Python onOctober 27, 2018

python 中的包的概念跟c++中的namespace很相似,在大型的工程开发中,多个开发人员很容使用相同的函数名,为了避免相同函数名带来的问题,就引入了包的概念。

在看别人写的程序中经常看到形如“from xx import yy”xx就是包

制作一个本地使用的包

建立一个文件夹并命名为dl,文件夹名"dl"就是我们的包名,在文件夹内部新建一个“__init__.py”(注意init左右两边都是两个底线符号),在文件夹下添加自己的模块即可,代码目录如下,a.py中存放test_a函数,b.py中存放test_b函数

python 制作自定义包并安装到系统目录的方法

在dl同级目录中添加要使用包的测试文件,并测试

测试代码如下:

<code class="language-python">from dl import a,b 
 
a.test_a() 
b.test_b()</code>

可以发现能正常执行包dl中模块a和模块b中的函数(包是可以嵌套的,包中可以再添加包)

_init__.py中可以控制当前包都有哪些模块可以导出,如果__init__.py中什么内容都没有,表示当前包中所有的模块都可以导出,其他模块可以通过“from xx import *”的方式使用该包。

在__init__.py中添加“__all__ = ['a','b']”表示当前包内只有a,b两个模块可以导出

制作并安装包

在包dl同级的目录中创建setup.py

<code class="language-python">from distutils.core import setup 
setup(name="testModule", version="18.0.4", description="test to install module", author="szfhy", py_modules=['dl.a','dl.b', 'dl.network.facenet'])</code>

制作包执行命令 python setup.py build

python 制作自定义包并安装到系统目录的方法

生成压缩包 python setup.py sdist

python 制作自定义包并安装到系统目录的方法

解压缩包,并安装 sudo python setup.py install

进入python终端测试:

python 制作自定义包并安装到系统目录的方法

功能一切正常。大功告成!

以上这篇python 制作自定义包并安装到系统目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
通过C++学习Python
Jan 20 Python
python图像处理之反色实现方法
May 30 Python
Python编程中的异常处理教程
Aug 21 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 #Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 #Python
用Python实现筛选文件脚本的方法
Oct 27 #Python
基于python指定包的安装路径方法
Oct 27 #Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 #Python
Python利用递归实现文件的复制方法
Oct 27 #Python
python实现本地图片转存并重命名的示例代码
Oct 27 #Python
You might like
PHP变量内存分配问题记录整理
2013/11/27 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
javascript读写json示例
2014/04/11 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
python实现AES加密解密
2019/03/28 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
python文件读写代码实例
2019/10/21 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
电子专业自荐信
2014/07/01 职场文书
片区教研活动总结
2014/07/02 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
总经理助理岗位职责
2015/01/31 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
Java数据结构之堆(优先队列)
2022/05/20 Java/Android
ant design charts 获取后端接口数据展示
2022/05/25 Javascript
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS