Python笔记 模块的打包与发布

打包与发布

1、准备一个空文件夹pack

[root@localhost lianxi]# mkdir pack

2、在pack下面创建一个包 modpack ,还需要一个__init__.py

[root@localhost lianxi]# cd pack
[root@localhost pack]# mkdir modpack
[root@localhost pack]# cd modpack
[root@localhost modpack]# touch __init__.py
[root@localhost modpack]# cd ..
[root@localhost pack]# tree
.
└── modpack
    └── __init__.py

1 directory, 1 file

3、在modpack同级目录下,创建 setup.py

[root@localhost pack]# vim setup.py  #配置set.py

from setuptools import setup, find_packages

setup(

    #包名
    name = "modtest",
    #官网
    url = "http://baidu.com",
    #版本
    version = "0.0.1",
    #指定要打包的模块与包
    packages = find_packages(),
    #作者
    author = "tgzzwjz",
    #邮箱
    author_email = "123456@qq.com",
    #依赖
    install_requires = ['xlrd>=1.1.0']
    #描述信息
    #description = "this is test pack"

)
~                                               
~                                           
[root@localhost pack]# cd modpack
[root@localhost modpack]# vim mod.py

print("i am mod.py")

def func():
    print("this is mod.py function")
~                                               
~                                               
~                                               
~           
[root@localhost modpack]# cd ..
[root@localhost pack]# tree
.
├── modpack
│   ├── __init__.py
│   └── mod.py
└── setup.py

1 directory, 3 files

4、运行python3 setup.py check 进行语法检查

[root@localhost pack]# python3 setup.py check
running check

#出现running check表示语法正确

5、运行python3 setup.py sdist 生成tar.gz压缩包,会在同目录下生成一个dist目录

[root@localhost pack]# python3 setup.py sdist
running sdist
running egg_info
creating modtest.egg-info
writing modtest.egg-info/PKG-INFO
writing dependency_links to modtest.egg-info/dependency_links.txt
writing requirements to modtest.egg-info/requires.txt
writing top-level names to modtest.egg-info/top_level.txt
writing manifest file 'modtest.egg-info/SOURCES.txt'
reading manifest file 'modtest.egg-info/SOURCES.txt'
writing manifest file 'modtest.egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md

running check
creating modtest-0.0.1
creating modtest-0.0.1/modpack
creating modtest-0.0.1/modtest.egg-info
copying files to modtest-0.0.1...
copying setup.py -> modtest-0.0.1
copying modpack/__init__.py -> modtest-0.0.1/modpack
copying modpack/mod.py -> modtest-0.0.1/modpack
copying modtest.egg-info/PKG-INFO -> modtest-0.0.1/modtest.egg-info
copying modtest.egg-info/SOURCES.txt -> modtest-0.0.1/modtest.egg-info
copying modtest.egg-info/dependency_links.txt -> modtest-0.0.1/modtest.egg-info
copying modtest.egg-info/requires.txt -> modtest-0.0.1/modtest.egg-info
copying modtest.egg-info/top_level.txt -> modtest-0.0.1/modtest.egg-info
Writing modtest-0.0.1/setup.cfg
creating dist
Creating tar archive
removing 'modtest-0.0.1' (and everything under it)
[root@localhost pack]# ls
dist  modpack  modtest.egg-info  setup.py

打包好的安装包文件就在dist目录下
6、安装
进入dist目录,利用pip3 install modtest-0.0.1.tar.gz进行安装

[root@localhost pack]# cd dist
[root@localhost dist]# ls
modtest-0.0.1.tar.gz
[root@localhost dist]# pip3 install modtest-0.0.1.tar.gz
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Processing ./modtest-0.0.1.tar.gz
Collecting xlrd>=1.1.0 (from modtest==0.0.1)
  Downloading https://files.pythonhosted.org/packages/a6/0c/c2a72d51fe56e08a08acc85d13013558a2d793028ae7385448a6ccdfae64/xlrd-2.0.1-py2.py3-none-any.whl (96kB)
    10% |███▍                            | 10kB 
    21% |██████▉                         | 20kB 
    31% |██████████▏                     | 30kB 
    42% |█████████████▋                  | 40kB 
    53% |█████████████████               | 51kB 
    63% |████████████████████▍           | 61kB 
    74% |███████████████████████▊        | 71kB 
    84% |███████████████████████████▏    | 81kB 
    95% |██████████████████████████████▌ | 92kB 
    100% |████████████████████████████████| 102kB 38kB/s 
Installing collected packages: xlrd, modtest
  Running setup.py install for modtest ... done
Successfully installed modtest-0.0.1 xlrd-2.0.1

7、测试

[root@localhost dist]# python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from modpack import mod
i am mod.py
>>> mod.func
<function func at 0x7fc8ea870598>
>>> mod.func()
this is mod.py function
>>> 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值