Py3 工具打包并发布到 pip

Py3 工具打包并发布到 pip_第1张图片

先赞后看,养成习惯

编写自定义包代码

代码结构

- dir_name
  - src
    - __init__.py
    - package_name
      - __init__.py
      - module1.py
      - module2.py
  - setup.py

编写setup.py文件内容

下面是一个简单的setup.py文件,详细的参数配置可以参考 An Introduction to Distutils

# 编写完包源码后,python setup.py sdist生成pip压缩包# 解压压缩包,python setup.py install  安装自己的包,就可以引用了from distutils.core import setupfrom setuptools import find_packagessetup(name='package_name',  # 包名      version='2020.4.10',  # 版本号      description='',      long_description='',      author='your_name',      author_email='[email protected]',      url='xxx',      license='',      install_requires=[],      classifiers=[          'Intended Audience :: Developers',          'Operating System :: OS Independent',          'Natural Language :: Chinese (Simplified)',          'Programming Language :: Python',          'Programming Language :: Python :: 3',          'Programming Language :: Python :: 3.6',          'Topic :: Utilities'      ],      keywords='',      packages=find_packages('src'),  # 必填      package_dir={'': 'src'},  # 必填      include_package_data=True,      )

package_name/__init__.py内容如下

from __future__ import absolute_import# 上面这个必须位于文件开头,否则后面运行会报错from .module1 import *from .module2 import *

module1.py 代码如下

# 加法def add(a,b):    return a+b

module2.py 代码如下

# 减法def sub(a,b):    return a-b# 乘法def mul(a,b):    return a*b

打包安装自定义包

在 dir_name 目录下执行
python setup.py sdist

生成 pip 压缩包, 没有这刷新项目 进入 packet_demo/dist 文件夹,执行
pip install xxx(自己包名,自由替换).tar.gz Py3 工具打包并发布到 pip_第2张图片

安装后,就可以直接调用了

import package_nameprint(package_name.add(1,2))

Py3 工具打包并发布到 pip_第3张图片

上传代码到 PyPI

检查 setup.py

在上传之前,可以先通过命令校验 setup 写错了没有: python setup.py check

如果只有 running check 没有输出任何错误,则说明格式正确。

注册 pypi.org

然后需要在这里注册一个 PyPI 的帐号,注册完成之后,就可以将这个代码库注册到 PyPI 了:
https://pypi.org/

注册以后就可以打包上传了

# 打包
python setup.py sdist

# 安装上传组件
pip install twine

# 上传
twine upload ./dist/xxx(自己包名,自由替换).tar.gz`
会让你输入账号密码

最后去 PyPI 上看下我们刚刚上传的库

试试看我们自己发布的库 pip install package_name

import package_nameprint(package_name.add(1,2))

欢迎到圈子吐槽、讨论文章

/portal/topic-profile/topic-profile?group_id=13104376420761002&invite_ticket=BgAA3BTMQI66ZMBHZCquCoRl_w&topic_id=6&fromScene=bizArticle

小福利:

关注「 锐门玩道 」,回复「 资源 」领取更多 前后端学习资源 图片描述

你可能感兴趣的:(pip,python3,打包)