发布python包
写python程序时常常要导入各种包,使用其中的模块或功能。我们如果有可以复用的功能或模块也可以发布成包,并安装在自己或他人电脑上,以供自己或别人使用。python发布包的步骤如下:
一、首先为模块创建一个文件夹
比如我有一个名为analyzelog.py的文件想发布成包,新建了一个文件夹AnalyzeLogTest(名字无所谓),并放入analyzelog.py文件
二、在新文件夹中创建一个名为setup.py的文件
这个文件包含有关发布的元素,增加如下代码
from distutils.core import setup setup(
name = 'analyzelog',
version = '1.0.0',
py_modules = ['analyzelog'],
author = 'zs',
author_email = 'XXXX',
url = 'xxxxx',
description = 'XXXXXXXXX',
)
开头先从python发布工具导入“setup”函数
接下来调用setup函数,并为setup函数传参。
name是模块的名字,version是版本号,py_modules是模块包含的文件名,是一个列表,剩下几项是作者、作者邮箱,网址,和模块的描述
setup.py创建好之后,就可以开始下一步了。
三、 构建一个发布版本
在命令行界面进入到新建的文件夹路径下,输入如下命令:(我用的windows,已将python的地址设置在系统环境变量中)
python setup.py sdist
如上图所示,python包就发布好了
四、将发布的包安装到本地
输入如下命令python setup.py install,如下图所示,就安装完成了。
从图中我们也可以看到python安装大体做了哪些工作:1. 把代码拷贝到了python主目录下的Lib\site-packages文件夹中;2. 编译代码成为中间代码,对于中间代码,只有要原代码有变化时,编译才会重新生成中间代码,原代码如果没有变化,编译时中间代码不会重新生成。
让我们回头看一下,新建的文件夹下有什么变化
最开始的时候里面有两个文件夹,analyzelog.py和setup.py
安装完成后里面多了几个文件和文件夹,如下图所示。
MANIFEST文件中包含发布中的文件列表,可以用记事本打看看一下,里面记录了analyzelog.py和setup.py
build文件夹及子文件夹lib存放的是原代码analyzelog.py
dist文件夹中存放的是发布包analyzelog-1.0.0.tar.gz
最后我们就可以在python代码中import之前安装的包,使用其中的模块或函数了。
发布python包的更多相关文章
- 在pypi上发布python包详细教程
使用Python编程中Python的包安装非常方便,一般都是可以pip来安装搞定:pip install <package name>,我们自己写的python也可以发布在pypi上,很简 ...
- gitlab+jenkins自动发布Python包到私有仓储
背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...
- 2019-02-20 在PyPI测试平台发布Python包
参考Packaging Python Projects, 源码在nobodxbodon/test-package-for-pypi 包名/__init__.py: 测试变量 = "值&quo ...
- 将python包发布到PyPI和制作whl文件
参考链接:wheel和egg的不同怎样将自己写的包传达到PyPi发布你自己的轮子 - PyPI打包上传实践PyPI官网上传包教程 wheel文件Wheel和Egg都是python的打包格式,目的是支持 ...
- python包管理工具他们之间的关系
python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...
- 纯Python包发布setup脚本编写示例
如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...
- 在Pypi上发布自己的Python包
使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定: sudo pip install <package name> pip的安装请移步:https ...
- 手把手教你发布一个Python包
本文主题如下: 编写一个包(Python 源代码),但不是本文的重点. 编译包,观察编译后的文件. 发布包,发布的包可以有多种类型. 如何在 Pypi 中查看已发布的包 注意: 本文编写的包在 Pyt ...
- 实战教程:如何将自己的Python包发布到PyPI上
1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...
随机推荐
- python练习题3:N的多次方
N的多次方 描述 编写一个程序,计算输入数字N的0次方到5次方结果,并依次输出这6个结果,输出结果间用空格分隔.其中:N是一个整数或浮点数. print()函数可以同时输出多个信息,采用如下方法可以使 ...
- docker 限制container容器使用内存大小,不限制swap
docker update --memory 20g --memory-swap -1 96b14c546d98 参考:https://my.oschina.net/Kanonpy/blog/2209 ...
- form表单提交数据,页面必定会刷新,ajax提交数据不会刷新,做到悄悄提交,多选删除,ajax提交实例
很多页面用到的模态对话框,如知明网站https://dig.chouti.com/的登录页都是模态对话框, 当点登录时,是用的ajax提交,因为输入错了信息,有返回消息,而页面没有刷新. jquery ...
- APS技术中的多目标规划问题
在进行APS(高级计划与排程)系统开发时,绝大多数情况下是需要考虑多目标的.但面对多目标问题进行规划求解时,我们往往极容易因处理方法不当,而影响输出结果,令结果与用户期望产生较大差别.事实上很多时候用 ...
- DLL简单分析与调用方法
最近为了分析一个没有代码的DLL有哪些函数,找了各种方法. 把结果分享一下:三个方法都没法得到函数的参数,有点让我失望. DLL Export Viewer NikPEViewer Dumpbin 配 ...
- RAMOS测速
WIN7X64-DDR31600-RAMOS测速,连续读取17GB/S,连续写入10GB/S,4K读写都是1GB/S左右.不错哦.
- GNU make 汇总
= 是最基本的赋值 := 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值 $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件 makefile获取 ...
- 3.Qt GUI中一些操作记录
一.如何在Widget中利用代码添加背景图片 this->setAutoFillBackground(true); // QPalette palette = this->palette( ...
- docker18.09.5 Dockerfile文件编写
Dockerfile命令详解(超全版本) https://www.cnblogs.com/dazhoushuoceshi/p/7066041.html 案例1 dockerfile文件内容: FRO ...
- c#调用python代码
c#调用python的方法比较多,比如ironpython,尽管不用安装python环境,可是不兼容python众多的包,也只更新到了python2,通过创建python进程这种方式可以很好的解决兼容 ...