【转】Python3 (入门6) 库的打包与安装
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
下面是我的包结构示范图:
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
【转】Python3 (入门6) 库的打包与安装的更多相关文章
- Python3入门笔记(1) —— windows安装与运行
Python的设计哲学是"优雅"."明确"."简单".这也是我喜欢Python的理由之一 Python的安装: 1.进入Python官方网站 ...
- Python3 urllib.request库的基本使用
Python3 urllib.request库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urlli ...
- python3入门之赋值语句介绍
获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍赋值语句,以及几种特殊的赋值.下面附有之前的文章: python3入门之print,import,input介绍 python入门之字 ...
- SharePoint Framework 在web部件中使用已存在的JavaScript库 - 捆绑打包和外部引用
博客地址:http://blog.csdn.net/FoxDave 在构建SPFx客户端web部件时,你可以使用公网已有的JavaScript库来构建强大的解决方案.但是在使用的时候你需要考虑你引用的 ...
- 对python3中pathlib库的Path类的使用详解
原文连接 https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...
- libevent的入门学习-库的安装【转】
转自:https://blog.csdn.net/lookintosky/article/details/61658067 libevent的入门学习-库的安装最近开始接触Linux应用层的东西,发现 ...
- Python3入门机器学习经典算法与应用
<Python3入门机器学习经典算法与应用> 章节第1章 欢迎来到 Python3 玩转机器学习1-1 什么是机器学习1-2 课程涵盖的内容和理念1-3 课程所使用的主要技术栈第2章 机器 ...
- 李洪强iOS开发之静态库的打包一
李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...
- Python3下requests库发送multipart/form-data类型请求
[本文出自天外归云的博客园] 要模拟multipart/form-data类型请求,可以用python3的requests库完成.代码示例如下: #请求的接口url url = "url&q ...
随机推荐
- Python调用接口的几种方式
1. requests import requests, jsongithub_url = 'https://api.github.com/user/repos'data = json.dumps({ ...
- MariaDB第三章:数据库设计与备份--小白博客
数据库设计 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 2.第二范式(确保表中的每列都和主键相关) 第 ...
- 关于mysql中unique的插入Duplicate key
MySQL数据库中 如果在后台中不做判断是否unique的column是否存在的话,直接把数据操作给dao层再传给DB的话,就会报重复的唯一值.如果确实是不希望先取出判断unique的column是否 ...
- mybatis 使用事务处理
mybatis默认开启事务 以前使用JDBC的时候,如果要开启事务,我们需要调用conn.setAutoCommit(false)方法来关闭自动提交,之后才能进行事务操作,否则每一次对数据库的操作都会 ...
- asp.net core 2.1认证
asp.net core 2.1认证 这篇文章基于asp.net core的CookieAuthenticationHandler来讲述. 认证和授权很相似,他们的英文也很相似,一个是Authenti ...
- Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题
前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置 1.Tomcat的下载 地址:https://tomcat.apach ...
- RCTF 2017 easyre-153
die查一下发现是upx壳 直接脱掉 ELF文件 跑一下: 没看懂是什么意思 随便输一个数就结束了 ida打开 看一下: pipe是完成两个进程之间通信的函数 1是写,0是读 fork是通过系统调用创 ...
- ☆ [NOI2014] 魔法森林 「LCT动态维护最小生成树」
题目类型:\(LCT\)动态维护最小生成树 传送门:>Here< 题意:带权无向图,每条边有权值\(a[i],b[i]\).要求一条从\(1\)到\(N\)的路径,使得这条路径上的\(Ma ...
- MYSQL实战-------丁奇(极客时间)学习笔记
1.基础架构:一条sql查询语句是如何执行的? mysql> select * from T where ID=10: 2.基础架构:一条sql更新语句是如何执行的? mysql> upd ...
- bzoj 2816: [ZJOI2012]网络 (LCT 建多棵树)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2816 题面: http://www.lydsy.com/JudgeOnline/upload ...