当前位置: 首页 > news >正文

python包的管理

管理python包

python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。

python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所有的python包都可以在PyPI中下载并安装。

PyPI中的每个包都对应一个URL:https://pypi.python.org/pypi/{package},通过URL直接下载就是安装;只不过这是一个手动的过程:搜索包+下载+解压+Python setup.py install

有没有自动的方式?

setuptools

一种是setuptools,提供一键安装。当然首先要先安装setuptools。setuptools可以通过https://pypi.python.org/pypi/setuptools下载setuptools包手动安装。

安装setuptools之后,就可以运行easy_install命令安装其他的包,如

easy_install numpy

pip

pip作为setuptools的改进版,增加了对已安装包的查询和删除等管理,是当前最流行的python包管理工具。

要使用pip需要安装,可以通过PyPI下载也可以通过setuptools安装。

easy_install pip 

注意:setuptools和pip都是python软件包哦。

pip提供了CLI命令,可以通过pip --help查看使用帮助
请添加图片描述

最常用例子


# 安装
pip install numpy

# 卸载
pip uninstall numpy

# 查看已安装包
pip list

升级pip版本

pip install pip -U

在国内pypi的网站下载可能会比较慢,可以设置其他镜像站点如清华源

可以通过 pip config 设置为默认源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

也可以每次pip install 指定源

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

另外yolk也提供了更详细的包的信息,不过不是很常用


pip install yolk3k
# 查看已经安装包
yolk -l 
# 显示包注册的所有入口点
yolk --entry-map

小结

今天介绍了几种python包的管理方法, pip是最流行的方式。但是不要忘记了最原始的PyPI。

另外Anaconda 提供是常用的python的安装包,当然也包括pip。

打包python程序

当你开发完自己的python程序并通过测试后,下一步就是要打包部署你的程序。

  • 如果你开发的是公共组件,供他人使用,则需要打包代码,并发布到内部共享库或者公开的PyPI
  • 如果你开发的是独立组件,则打包代码,通过持续集成进行发布到线上部署

打包文件格式通常是zip包或者tar包。

之前介绍过的setuptools提供了较完善的打包和发布到公开源PyPI的过程,打包步骤如下:

  • 自己程序模块,如add.py
  • setup.py 设置安装相关信息
  • 打包
  • 发布到PyPI
  • 下载安装
  • 模块使用

我们以一个例子来说明上述的步骤

  • 自己程序模块
    一个简单的工具计算类add.py

def add(a, b):
    return a + b
  • setup.py文件
    编写setup文件,一般只要包括版本和模块,以及作者信息即可。也可以通过paste模块自动生成setup文件。
    下面是一个简单的setup文件

from distutils.core import setup
setup(name='add',
    version='1.0',
    py_modules=['add'],
    )

paste模块通过pip install pastescript安装,paste提供了不同的模板可以快速创建setup文件,也可以通过制定的配置文件生成,通常建议使用配置来创建

请添加图片描述

常用配置如下:

[pastescript]
description = aiweker-prj
license_name = aiweker
keywords = Python
long_description = aiweker-prj
author = aiweker
author_email = xxx@aiweker.com
url = http://aiweker.com
version = 1.0.0
paster通过create创建setup文件,模板为basic_package
paster create -t basic_package --config="aiweker-prj-setup.cfg" add
  • 打包
    注意上面提及的add.py模块和setup.py文件是在同一个级目录。打包执行下面命令即可打包

    
    python setup.py sdist --formats=zip,gztar
    

    打包后在dist目录下会有两个包一个是zip包,另一个是tar.gz包

    ./dist
    |- add-1.0.tar.gz
    |- add-1.0.zip
    
  • 上传到PyPI
    要上传到PyPI,需要在PyPI注册一个账号

    • 通过python setup.py register注册;
    • 注册完之后,通过python setup.py register -n登录
    • 通过upload 进行上传 python setup.py sdist upload
  • 安装模块和使用
    直接使用以下命令安装模块

python setup.py install

import add

print(add.add(10, 4))
# 14

以上就是简单的打包发布过程,希望对你有帮助!

相关文章:

  • 图论- Dijkstra算法
  • 【Java】ArrayList与LinkedList的性能对比深度解析
  • 循环队列知识点及习题
  • 1-8 gitee码云的注册与使用
  • 软件测试之黑盒测试与白盒测试
  • android设置添加设备QR码信息
  • 用大模型学大模型05-线性回归
  • 全面理解-c++中的内存布局
  • visutal studio 2022使用qcustomplot基础教程
  • ROS2 话题通信
  • 算法题(68):路径总和
  • 算法244(力扣136)反转字符串
  • mysql和minio
  • C语言中的文件
  • YOLOV8的学习记录(三) 训练各种模型所使用的数据格式区别
  • Farewell Go,Hello AI:是时候说再见了
  • AWS Fargate 部署流程图及说明
  • 劳力士(Rolex):蚝式恒动(Oyster Perpetual),潜航者(Submariner)和宇宙计型迪通拿(Daytona)中英双语
  • Vue.js 配置 Babel、Webpack 和 ESLint
  • 矩阵碰一碰发视频技术开发全解析,支持OEM
  • 人民日报和音:相信中国就是相信明天
  • 国宝文物子弹库帛书二、三卷从美启程,18日凌晨抵京
  • 中国新闻发言人论坛在京举行,郭嘉昆:让中国声音抢占第一落点
  • 技术派|威胁F-35、击落“死神”,胡塞武装防空战力如何?
  • “朱雀玄武敕令”改名“周乔治华盛顿”?警方称未通过审核
  • 最高人民法院原副院长唐德华逝世,享年89岁