【转】Python3 (入门6) 库的打包与安装

时间:2022-11-06 05:48:37

Python3 (入门6) 库的打包与安装


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/69402887


以下代码以Python3.6.1为例
Less is more!
Windows10 为例

包结构

库发布前先确认你的库是以下这个结构的.
project 是最外层的库名
package1 是里面的包名
module.py 是具体的模块.
setup.py__init__.py 是必须包含的,下面会讲解

project
┝━ setup.py
┝━ package1
│ ┝ __init__.py
│ ┝ module1.py
│ └ module2.py
└─ package2
┝ __init__.py
┝ module3.py
└ module4.py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

下面是我的包结构示范图:
【转】Python3 (入门6) 库的打包与安装

module.py

以下为示范,简单写了个测试函数

#coding=utf-8
# module.py 常用模块 def hello():
print("Hello World!") if __name__ == "__main__":
hello()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

setup.py

写入以下内容, 具体含义以注解,根据需求修改

#coding=utf-8
from distutils.core import setup
# 库名 / 版本 / 描述 / 项目地址 / 作者 / 作者邮箱 / 协议 / 关键词 / 模块列表
setup(name="python", version="1.0", description="my python", url='http://luzhuo.me', author="luzhuo", author_email='LZ.Luzhuo@gmail.com', license='MIT', keywords='python', py_modules=['moltest.module'])
  • 1
  • 2
  • 3
  • 4

__init__.py

写入以下内容,具体含义以注解,根据需求修改
可以把所有的模块名都写上

#coding=utf-8
# from myPthon import * 时导入的模块名
__all__=['module']
  • 1
  • 2
  • 3

构建库

cd到project目录执行(有setup.py文件的目录), 执行 构建命令

python setup.py build
  • 1

构建完, 执行 打包命令

python setup.py sdist
  • 1

安装(本地)库

如果拿到的是 xxx.tar.gz 的压缩包,要先完全解压

tar -zxvf xxx.tar.gz
  • 1

完全解压完之后,cd到解压出来的库根目录(有setup.py文件的目录), 执行 安装命令
Windows:

python setup.py install
  • 1

Linux:

sudo python setup.py install --record log
  • 1

安装完后即可执行调用命令

>>> from moltest import *
>>> module.hello()
Hello World!
>>>
  • 1
  • 2
  • 3
  • 4

卸载(本地)库

Windows:

  • 打开目录 C:\Users\LZLuz\AppData\Local\Programs\Python\Python36-32\Lib\site-packages, 删除不需要的模块.
  • 也可搜索 site-packages文件夹.

Linux:

  • log文件里记录的文件删除
  • sudo cat log | sudo xargs rm -rf

pip安装与卸载(网络)库(numpy为例)

  • 安装
    • pip install numpy
  • 卸载
    • pip uninstall numpy
  • 已安装的库
    • pip list