python包的管理

news2025/3/28 7:33:34

管理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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我用 Cursor 开发了一款个人小记系统

https://note.iiter.cn 项目背景 在日常工作和学习中,我们经常需要快速记录一些想法、收藏一些有用的链接或者保存一些重要的文本、图片内容。虽然市面上已经有很多笔记软件,但我想要一个更轻量、更简单的工具,专注于快速记录和智能检索。于是我开发了这款个人小记系统。 系统…

安全测试中的身份认证与访问控制深度解析

第一部分:基本概念与核心问题 1. 身份认证与访问控制基础 1.1 身份认证三要素 知识因素(密码、PIN码)持有因素(硬件令牌、手机)生物因素(指纹、面部识别)1.2 访问控制模型 DAC(自主访问控制)MAC(强制访问控制)RBAC(基于角色的访问控制)2. 关键安全机制 2.1 会话…

代码随想录-训练营-day30

今天我们要进入动态规划的背包问题,背包问题也是一类经典问题了。总的来说可以分为: 今天让我们先来复习0-1背包的题目,这也是所有背包问题的基础。所谓的0-1背包问题一般来说就是给一个背包带有最大容量,然后给一个物体对应的需要…

全平台搭载旭日5!科沃斯GOAT智能割草机器人全新系列正式开售

要闻 近日,科沃斯全新发布的GOAT A Series 和 GOAT O Series割草机器人,将在多国市场正式上市发售。作为业界最强的割草机器人产品之一,GOAT致力为割草机带来基于机器人视觉的专业定位解决方案。科沃斯GOAT全新系列产品全平台搭载地瓜机器人…

自定义组件数据监听器案例,纯数据字段,自定义组件生命周期,页面的生命周期,插槽

1.自定义组件数据监听器案例 1.1基础案例模板 1.2定义button事件的处理函数 1.3监听对象中属性的变化,并且为fullColor赋值 使用通配符监听所有属性变化 2.自定义组件的纯数据字段 、 3.自定义组件的生命周期 4.组件所在页面的生命周期 5.自定义组件插槽 5.1单个插…

mybatis-lombok工具包介绍

Lombok是一个实用的]ava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。 使用前要加入Lombok依赖

LDO技术:线性调整率与负载调整率全解析

LDO(Low Dropout Regulator)低压差线性稳压器,其结构比较简单、纹波和噪声比DCDC小、成本也优于DCDC,缺点是在输入电压和输出电压的压差比较大时,效率低些,但在小电流电源电路上被广泛使用。现在输入电压和输出电压的压差可做到10…

SpringBoot 集成 Caffeine 实现本地缓存

目录 1、Caffeine 简介 1.1、Caffeine 简介1.2、对比 Guava cache 的性能主要优化项1.3、常见的缓存淘汰算法1.4、SpringBoot 集成 Caffeine 两种方式 2、SpringBoot 集成 Caffeine 方式一 2.1、缓存加载策略 2.1.1、手动加载2.1.2、自动加载【Loading Cache】2.1.3、异步加载…

使用EVE-NE-锐捷实现NAT+ACL服务限制

一、项目拓扑 二、项目实现 1.NET配置 点击左侧的NetWorks,设置与图相同的配置,实现实验环境桥接到物理网络 2.GW配置 进入特权模式 enable进入全局模式 configure terminal 更改名称为GW hostname GW进入g0/0接口 interface g0/0将g0/0接口IP地址配置为192.168.…

大模型训练为什么依赖GPU

近年来,随着人工智能技术的飞速发展,特别是深度学习领域的进步,大模型的训练逐渐成为研究和工业界的热点。作为大模型训练中的核心硬件,GPU(图形处理单元)扮演了至关重要的角色。那么,为什么大模…

二叉树链式结构:数据结构中的灵动之舞

目录 前言 一、 前置说明 二、二叉树的遍历 2.1前序遍历 2.2中序遍历 2.3 后序遍历 2.4层序遍历 三、二叉树的遍历的应用 3.1二叉树节点个数: 3.2二叉树的高度 3.3 二叉树第k层的节点的个数 3.4二叉树的查找 总结 前言 在数据结构的世界里,二叉…

新建github操作

1.在github.com的主页根据提示新建一个depository。 2.配置用户名和邮箱 git config --global user.name "name" git config --global user.email "email" 3.生成ssh秘钥 ssh-keygen -t rsa 找到public key 对应的文件路径 cat /root/.ssh/id_rsa 复制显…

第 15 天:数据存储,打造存档 读取系统!

🎯 目标: ✅ 掌握 UE5 SaveGame 存档系统 ✅ 在 C 创建存档类,存储游戏数据 ✅ 实现存档 & 读取功能,让游戏状态可持久化 ✅ 在 BP_PlayerCharacter 里实现: * 游戏开始时自动加载存档 * 玩家受到伤害时自动存档 …

Flutter 异步编程利器:Future 与 Stream 深度解析

目录 一、Future:处理单次异步操作 1. 概念解读 2. 使用场景 3. 基本用法 3.1 创建 Future 3.2 使用 then 消费 Future 3.3 特性 二、Stream:处理连续异步事件流 1. 概念解读 2. 使用场景 3. 基本用法 3.1 创建 Stream 3.2 监听 Stream 3.…

Java短信验证功能简单使用

注册登录阿里云官网&#xff1a;https://www.aliyun.com/ 搜索短信服务 自己一步步申请就可以了 开发文档&#xff1a; https://next.api.aliyun.com/api-tools/sdk/Dysmsapi?version2017-05-25&languagejava-tea&tabprimer-doc 1.引入依赖 <dependency>…

React进阶之React核心源码解析(一)

React核心源码解析 react 特点CPU卡顿IO 卡顿 新老 react 架构对比v15v16.8Scheduler 调度器Reconciler 协调器 React fiber原理更新dommount 构建过程 render阶段 — scheduler reconcilerreact源码解析react-domreact-dom/src/client/ReactDOMRoot.js react-reconcilerreact-…

【Vue】打包vue3+vite项目发布到github page的完整过程

文章目录 第一步&#xff1a;打包第二步&#xff1a;github仓库设置第三步&#xff1a;安装插件gh-pages第四步&#xff1a;两个配置第五步&#xff1a;上传github其他问题1. 路由2.待补充 参考文章&#xff1a; 环境&#xff1a; vue3vite windows11&#xff08;使用终端即可&…

类加载机制及双亲委派模型

一、引言 二、类加载流程 1. 加载 2. 连接 2.1 验证 2.2 准备 2.3 解析 3. 初始化 三、类加载器 类加载器的类型 双亲委派模型 打破双亲委派模型 双亲委派模型优点 一、引言 在 Java 的运行机制中&#xff0c;类加载是一个至关重要的环节。它不仅决定了 Java 程序的动态…

尚硅谷课程【笔记】——大数据之Hadoop【一】

课程视频链接&#xff1a;尚硅谷Hadoop3.x教程 一、大数据概论 1&#xff09;大数据概念 大数据&#xff08;Big Data&#xff09;&#xff1a;指无法再一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发…

DockerFile优化镜像体积

title: DockerFile优化镜像体积 date: 2025-02-15 15:22:40 tags: DockerFile优化镜像体积DockerFile优化镜像体积 DockerFile优化镜像体积前文回顾:一、细数优化镜像体积的思路与方式二、优化Dockfile文件编辑 Dockerfile2文件三、构建镜像四、运行镜像五、查看运行效果原文 …