Python 制作自定义包-打包-安装

Python制作安装自定义包及发布 

一. 目录结构

 

|--pkgname
|----|--__init__.py
|----|--module1.py
|----|--module2.py
|----|--subpkgname
|----|----|--__init__.py
|----|----|--module3.py
|--setup.py

 

二. 文件解析  

pkgname为目录名, 亦即包名, 该目录下有__init__.py, module1.py, module2.py文件及subpkgname目录,  

subpkgname目录下有__init__.py, module3.py文件及subpkgname目录.

pkgname同级目录下有setup.py文件.

__init__.py中可以控制当前包都有哪些模块可以导出,在__init__.py中添加“__all__ = ['module1','module2']”

__init__.py可以为空.

module文件内可为函数, 类等平常使用的方法, 不多作解释. 

 

setup.py文件内容基本如下:  

 

from setuptools import setup

requires = [] #依赖包, 如有

setup(name="bunshinn", #包名
version="18.8.30",
install_requires=requires,
description="test to install module",
author="bunshinn",
author_email = "412319433@qq.com",
url = "https://github.com/bunshinn/bstools",
py_modules=['pkgname.module1','pkgname.module2',], #要引入的模块
packages=['pkgname.subpkgname'], #要引入的包
)

 

三. 制作与安装

进入该目录下
python setup.py build #生成包文件
python setup.py sdist #生成压缩包
a. 将压缩包解压后, 进入主目录, 内有setup.py文件
执行 python setup.py install
完成包安装.

b.使用pip安装

pip install path_to_dist_package,

若出现 cannot uninstall a distutils installed project'错误提示, 需对pip加参数如下:

pip install --ignore-installed D:\packages\packagename.tar.gz

四. 发布至pypi
a. 准备工作: 注册pypi帐户
b. 安装twine: pip install twine
c. 环境变量: path/to/python/scripts设为环境变量(pip同目录, 若已设, 忽略之)
d. 在第三步基础上, 运行twine upload dist/* , 输入帐号密码, 如有报错, 刚已上传成功, 可通过 pip pkgname直接安装
e. HTTPError: 403 Client Error: The credential associated with user 'bunshinn' isn't allowed to upload to project 'bstools'. See https://pypi.org/help/#project-name for more information. for url: https://upload.pypi.org/legacy/, 若出现类似错误, 模块命已被占用,可更换模块名重试

五. pip安装缓慢
可指定源进行安装:
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pkgname

本文来源于:http://bunshinn.cn/bunshinn/20.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值