distutils 实现对package 包的发布

import math

def showMsg(a):
return a * a * a a = 10
print('%d 的三次方是 %d' % (a, showMsg(a)))

package.py

1. 在同级目录下建立setup.py

# encoding=utf-8
from distutils.core import setup,Extension # 打包软件脚本文件必须采用 setup 名称
# 打包函数
setup(
name='package', # 安装包名
version='1.0', # 打包安装软件的版本号
description="实现对数的三次方运算",
long_description="实现对数的三次方运算",
author= 'feiquan123',
author_email= '2283320260@qq.com',
# maintainer="None", # 提供与包相关的其他维护者的名字
# maintainer_email="None", # 其他维护者的邮箱
url="", # 包相关网站主页的的访问地址
download_url="", # 下载安装包(zip , exe)的url
keywords="math",
py_modules=['package'], # 设置打包模块,可以多个
# 对于C,C++,Java 等第三方扩展模块一起打包时,需要指定扩展名、扩展源码、以及任何编译/链接 要求(包括目录、链接库等)
ext_modules = [Extension('data',['data.c'])],
)

注意:如果你的setup.py  中包含中文字符,第一行的代码必须写

如何扩展和嵌入 Python 解释器 : https://docs.python.org/zh-cn/3/extending/index.html

2. 编写安装配置文件 setup.cfg

[sdist]
dist-dir = source

dist-dir : 指定发布源码的路径,默认 dist

如何编写setup.cfg:

Common commands: (see '--help-commands' for more)

  setup.py build      will build the package underneath 'build/'
setup.py install will install the package Global options:
--verbose (-v) run verbosely (default)
--quiet (-q) run quietly (turns verbosity off)
--dry-run (-n) don't actually do anything
--help (-h) show detailed help message
--no-user-cfg ignore pydistutils.cfg in your home directory Options for 'sdist' command:
--template (-t) name of manifest template file [default: MANIFEST.in]
--manifest (-m) name of manifest file [default: MANIFEST]
--use-defaults include the default file set in the manifest
[default; disable with --no-defaults]
--no-defaults don't include the default file set
--prune specifically exclude files/directories that should
not be distributed (build tree, RCS/CVS dirs, etc.)
[default; disable with --no-prune]
--no-prune don't automatically exclude anything
--manifest-only (-o) just regenerate the manifest and then stop (implies
--force-manifest)
--force-manifest (-f) forcibly regenerate the manifest and carry on as
usual. Deprecated: now the manifest is always
regenerated.
--formats formats for source distribution (comma-separated
list)
--keep-temp (-k) keep the distribution tree around after creating
archive file(s)
--dist-dir (-d) directory to put the source distribution archive(s)
in [default: dist]
--medata-check Ensure that all required elements of meta-data are
supplied. Warn if any missing. [default]
--owner (-u) Owner name used when creating a tar file [default:
current user]
--group (-g) Group name used when creating a tar file [default:
current group]
--help-formats list available distribution formats usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help

setup.py --help sdist

3.  发布软件 (压缩包)

linux : python setup.py  sdist
windows : setup.py sdist
指定发布格式,同时生成两个压缩包: python setup.py  sdist --formats=gztar,zip
windows exe : python setup.py bdist_wininst

 --formats:

zip -> .zip
gztar -> .tar.gz
bztar -> .tar.bz2
ztar -> .tar.Z
tar -> .tar

4. 安装源码包,然后你就可以导入了

解压后cd 到解压目录
安装命令 python setup.py install
或者安装时保存安装日志: python setup.py install --record log

5. 安装后删除

1. 安装时记录日志 python setup.py install --record log
2. windows : for /F %i in (log) do del %i
linux : cat log | xagrs rm -rf

其中: log文件内容是安装目录:

E:\...\Lib\site-packages\package.py
E:\...\Lib\site-packages\__pycache__\package.cpython-37.pyc
E:\...\Lib\site-packages\package-1.0-py3.7.egg-info

python distutils 基本打包与发布的更多相关文章

  1. Python学习笔记(一):Python代码的打包与发布

    在python程序中,一个.py文件被当作一个模块,在各个模块中定义了不同的函数.当我们要使用某一个模块中的某一个函数时,首先须将这个模块导入,否则就会出现函数未定义的情况. 下面记录的是打包及安装包 ...

  2. python之打包、发布模块

    一.python中针对于写好的模块,并且比人也可以使用改模块,这样就可以以同意的打出来,让别人安装或者赋值过后可以更好的使用以及集成. 二.最近在学习python所以这里主要是记录一下python的打 ...

  3. python之模块distutils,打包工具

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块distutils,打包工具 import distutils #distutils包有2 ...

  4. APP的功能分类及打包与发布的分类方式

    智能手机的出现改变了我们的生活,同时各种各样的APP充斥在我们的手机当中.那么我先现在在来熟悉一下APP的分类及其用途:工具类.社交类.信息类.娱乐类.生活类等几大类.我么了解了APP的用途分类,那么 ...

  5. python的异常处理和模块发布安装

    1.完整的异常处理 异常处理能够保证程序出错是也能够完整运行,不会应为bug而停止运行,这里介绍下获取异常的完整格式 try: num = int(input("输入整数:")) ...

  6. Python服务Debian打包新思路

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Debian 打包一直是比较冷僻的技术,大部分同学都不会接触到它. 但是我们 Debian 服务器上安装的各 ...

  7. Java应用程序的打包和发布

    Java应用程序的打包和发布 简化Java应用程序的打包和发布 发布Java应用程序时Java提供了一系列打包和发布工具,可以显著的简化发布过程 该文章提供了打包Java code的几种方法,探讨Ja ...

  8. ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现

    前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的.尤其是当有一点小改动需要重新出包时,那简直是个折磨的人的工作.通过一番研究后,遂决定写一系列脚本, ...

  9. EclipseAndroid打包签名发布安装失败闪退运行不了

    EclipseAndroid打包签名发布安装失败闪退运行不了 本来没怎么用过用Eclipse写安卓,可是有人有需要必须用Eclipse写,那就写呗. 可在签名打包的时候,发到手机上安装,提示安装成功. ...

随机推荐

  1. Redis Cluster 的数据分片机制

    上一篇<分布式数据缓存中的一致性哈希算法> 文章中讲述了一致性哈希算法的基本原理和实现,今天就以 Redis Cluster 为例,详细讲解一下分布式数据缓存中的数据分片,上线下线时数据迁 ...

  2. 批量SSH key-gen无密码登陆认证脚本

    SSH key-gen无密码登录认证脚本 使用为了让linux之间使用ssh不需要密码,可以采用了数字签名RSA或者DSA来完成.主要使用ssh-key-gen实现. 通过 ssh-key-gen 来 ...

  3. 使用ASP.NET Core 3.x 构建 RESTful API - 3.4 内容协商

    现在,当谈论起 RESTful Web API 的时候,人们总会想到 JSON.但是实际上,JSON 和 RESTful API 没有半毛钱关系,只不过 JSON 恰好是RESTful API 结果的 ...

  4. Mysql—mysqladmin 命令详解

    mysqladmin是一个执行管理操作的客户端程序.它可以用来检查服务器的配置和当前状态.创建和删除数据库等. mysqladmin工具的使用格式:mysqladmin [option] comman ...

  5. python函数中参数的传递

    Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Java的引用类型是这样,基本类型按值传递 ...

  6. swoole加密可破解吗

    程序的执行和加解密过程合二唯一,无论是内部开发人员和外部黑客攻击,即使拿到了数据和私钥和服务器的root权限,也无法解密还原数据. Swoole将加解密分成了3部分(程序+算法+私钥),缺一不可解密. ...

  7. 数据安全管理:RSA加密算法,签名验签流程详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.RSA算法简介 1.加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用.可以在不直接传递密钥的情况下,完成加 ...

  8. Centos7部署mysql

    安装mysql yum install mysql mysql-server 会出现以下错误: [root@yl-web yl]# yum install mysql-server Loaded pl ...

  9. 微信支付 第一篇 JSAPI 支付配置与获取 OpenID

    开通微信支付支付产品 首先要在微信支付申请成为 微信支付商户. 选择开通具体的支付产品 成为微信支付商户后在管理后台选择微信支付中的具体支付产品并申请开通如 JSAPI . 将支付商户与公众号关联 这 ...

  10. zuul实现的限流

    限流一般可以根据客户端IP,请求的URL,用户登陆信息进行限制,每秒钟限制多次数,这从别一方面也提升了系统的性能,无用的并发没那么多了. 依赖包 <dependency> <grou ...